在尝试从背景中分割植物时,我遇到了一个问题 通过色调值创建遮罩并对其使用“关闭”和“打开”操作符后,我进入以下情况:
在这之后,我想删除图像边缘的小块,我通过以下操作完成了这一点:
_, cont, heir = cv2.findContours(mask_final, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
contour_sizes = [cv2.contourArea(contour) for contour in cont]
for con, size in zip(cont, contour_sizes):
if size > 5000:
mask_final = cv2.drawContours(mask_final, [con], -1, (255, 255, 255), cv2.FILLED)
应用此选项时,已移除斑点,但应用时:
final = cv2.bitwise_and(img_rgb,img_rgb, mask = mask_final)
我得到以下结果:
可以看出,遮罩没有正确地应用在图像上,有人知道为什么会发生这种情况吗
不要在
cv2.drawContours
函数中使用mask_final
,而是创建一个与原始图像形状相同的新mask
,并执行如下操作:相关问题 更多 >
编程相关推荐