You need to enable JavaScript to run this app. 基于OpenCV填充二值图像孔洞区域 实现大米图像轮廓提取预处理
优惠活动
大模型
产品
解决方案
定价
更多

基于OpenCV填充二值图像孔洞区域 实现大米图像轮廓提取预处理

大米图像轮廓提取预处理方案

你当前的需求是将自适应阈值处理后的大米二值图转换为「大米区域为黑色、背景为白色」的图像用于后续轮廓提取,之前使用腐蚀膨胀未达预期的核心原因是阈值处理后的大米区域内部存在未填充的孔洞,仅靠形态学开闭操作无法完全补全内部空隙,可通过漫水填充实现孔洞填补后再反色得到目标结果。

参考图像

  • 原始图像:原始图像
  • 输入图像(阴影去除+自适应阈值处理后):输入图像
  • 期望输出图像:期望输出图像

修复后完整代码

import cv2
import numpy as np

# des为你经过自适应阈值处理后的输入二值图像
# 第一步:填充大米区域内部孔洞
filled_img = des.copy()
h, w = des.shape[:2]
mask = np.zeros((h + 2, w + 2), np.uint8)
# 漫水填充背景区域,反色得到孔洞掩码
cv2.floodFill(filled_img, mask, (0, 0), 255)
hole_mask = cv2.bitwise_not(filled_img)
# 合并原图像与孔洞掩码,得到全白的大米区域
filled_rice = des | hole_mask

# 第二步:反色得到大米区域为黑色的目标输出
im_out = cv2.bitwise_not(filled_rice)

# 可选:小核开操作去除边缘零散噪点,优化输出效果
kernel = np.ones((2, 2), np.uint8)
im_out = cv2.morphologyEx(im_out, cv2.MORPH_OPEN, kernel, iterations=1)

# 结果展示
cv2.imshow("output", im_out)
cv2.waitKey(0)
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者Rajat Hada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 12:54:09