【发布时间】:2021-09-30 04:49:20
【问题描述】:
目前,我在 OpenCV 中使用给定的 x,y 坐标裁剪了一张图像。我正在尝试检测所述图像上的白色像素并显示它们。该代码工作正常,但在我用来制作屏幕截图的示例视频的某些帧上,裁剪背景也包括带有白色的元素。
我有以下代码:
import cv2
img = cv2.imread('Image_crop.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,gray = cv2.threshold(gray, 150,255,0)
gray2 = gray.copy()
cv2.imshow('IMG',gray2)
cv2.waitKey(0)
cv2.destroyAllWindows()
作物产量:
白色像素输出:
想要的输出:
有没有办法填充裁剪图像的背景或获得想要的输出?
【问题讨论】:
-
不要指望grabcut 能完美运行。它不知道它看到了什么。它会对边缘和颜色范围做出反应,仅此而已。 -- 只需手动定义一次掩码(在图像编辑器中)。你不需要任何算法,因为掩码永远不会改变。