这是代码:
low = np.array([140, 140, 140])
high = np.array([255, 255, 255])
mask = cv2.inRange(img1, low, high)
mask_off = cv2.threshold(mask, 10, 255, cv2.THRESH_BINARY)[1]
mask_off = cv2.dilate(mask_off, None, iterations=0)
cv2.imshow('as', mask_off)
key = cv2.waitKey(0)
if key == 27:
cv2.destroyAllWindows()
输出:
所需的输出:
为什么我的代码没有裁剪这些行
原始图片:
您想使用该erode
功能,该功能与dilate相反(请参见此处)。
erode
或dilate
采用内核的第二个参数,在您的情况下为10乘10的1的数组。另外,您必须至少执行一次迭代。
low = np.array([140, 140, 140])
high = np.array([255, 255, 255])
mask = cv2.inRange(img1, low, high)
mask_off = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]
mask_off = cv2.erode(mask_off, np.ones((10,10), np.uint8) , iterations=1)
cv2.imshow('as', mask_off)
key = cv2.waitKey(0)
if key == 27:
cv2.destroyAllWindows()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句