Python 使用OpenCV填充二进制图像中的孔/区域
我有下面的预处理大米图像。我想用黑色填充大米,然后执行反向操作以找到轮廓。我尝试使用腐蚀/膨胀操作,但不起作用。下面是我正在使用的代码片段 首先,我使用阴影去除算法,然后使用自适应阈值,从而得到输入图像。现在,我想将输入图像更改为输出图像 原始图像: 输入图像: 所需输出图像: 代码段:Python 使用OpenCV填充二进制图像中的孔/区域,python,numpy,opencv,image-processing,computer-vision,Python,Numpy,Opencv,Image Processing,Computer Vision,我有下面的预处理大米图像。我想用黑色填充大米,然后执行反向操作以找到轮廓。我尝试使用腐蚀/膨胀操作,但不起作用。下面是我正在使用的代码片段 首先,我使用阴影去除算法,然后使用自适应阈值,从而得到输入图像。现在,我想将输入图像更改为输出图像 原始图像: 输入图像: 所需输出图像: 代码段: oposite=cv2.按位\u非(img) #侵蚀 内核=np.ones((3,3),np.uint8) 侵蚀=cv2.扩张(des,内核,迭代次数=1) 侵蚀=cv2。按位\u非(侵蚀) im_out
oposite=cv2.按位\u非(img)
#侵蚀
内核=np.ones((3,3),np.uint8)
侵蚀=cv2.扩张(des,内核,迭代次数=1)
侵蚀=cv2。按位\u非(侵蚀)
im_out=磷石膏+侵蚀
cv2.imshow(“输出”,im_out)
cv2.等待键(0)
您可以使用方法中的标志和方法创建HSV掩码。我基本上将最大饱和值从255
更改为100
:
import cv2
import numpy as np
img = cv2.imread("rice.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([0, 0, 0])
upper = np.array([179, 100, 255])
mask = cv2.inRange(img_hsv, lower, upper)
cv2.imshow("Mask", mask)
cv2.waitKey(0)
import cv2
import numpy as np
img = cv2.imread("rice.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([0, 0, 0])
upper = np.array([111, 100, 255])
mask = cv2.inRange(img_hsv, lower, upper)
cv2.imshow("Mask", mask)
cv2.waitKey(0)
输出:
如果希望使颗粒变薄,可以将最大色调值从
179
调低到,比如说,111
,同时将最大饱和度值调低到100
:
import cv2
import numpy as np
img = cv2.imread("rice.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([0, 0, 0])
upper = np.array([179, 100, 255])
mask = cv2.inRange(img_hsv, lower, upper)
cv2.imshow("Mask", mask)
cv2.waitKey(0)
import cv2
import numpy as np
img = cv2.imread("rice.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([0, 0, 0])
upper = np.array([111, 100, 255])
mask = cv2.inRange(img_hsv, lower, upper)
cv2.imshow("Mask", mask)
cv2.waitKey(0)
输出:
什么是“des”图像?你应该先反转你的图像,然后做一个膨胀,这应该会起作用。您可能需要调整内核大小。您的“期望输出”是原始图像。应用了无法撤消的非线性变换。因此,您无法从转换后的图像中检索原始图像。“des”是“反向图像”。它的打字错误。有没有一种方法可以使用洪水填充?洪水填充也可以填充大米之间的孔洞。你最好的办法是检测果仁,然后把它们画成填充形状。@RajatHada我补充了一个答案。请让我知道它是否解决了您的问题,如果没有,为什么。谢谢。它解决了问题:)。我将用阴影较多的图像检查这种方法。