填充对象-openCV/Python
在基于的脚本中,我尝试填充对象(相当于Matlab中的imfill),但没有成功。有人能告诉我怎么做吗 脚本:填充对象-openCV/Python,python,opencv,Python,Opencv,在基于的脚本中,我尝试填充对象(相当于Matlab中的imfill),但没有成功。有人能告诉我怎么做吗 脚本: import cv2 import numpy as np #image can be found in https://i.stack.imgur.com/afCDL.jpg filename = 'E:/afCDL.jpg' img = cv2.imread(filename) cv2.imwrite('E:/img.jpg',img) cv2.imshow("Original
import cv2
import numpy as np
#image can be found in https://i.stack.imgur.com/afCDL.jpg
filename = 'E:/afCDL.jpg'
img = cv2.imread(filename)
cv2.imwrite('E:/img.jpg',img)
cv2.imshow("Original Image", img)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imwrite('E:/gray.jpg',gray)
bi = cv2.bilateralFilter(gray,5,25,25)
cv2.imwrite('E:/bi.jpg',bi)
blur = cv2.GaussianBlur(bi,(25,25),0)
cv2.imwrite('E:/blur.jpg',blur)
dog = blur - bi
cv2.imwrite('E:/DoG.jpg',dog)
cv2.imshow("DOG Image", dog)
kernel = np.ones((3,3),np.uint8)
fill = cv2.morphologyEx(dog, cv2.MORPH_CLOSE, kernel) #Fill holes- DOES NOT WORK
cv2.imshow("Fill", fill)
removeNoise = cv2.morphologyEx(fill, cv2.MORPH_OPEN, kernel) #Remove noise
cv2.imshow("remove Noise ", removeNoise)
cv2.waitKey(0)
cv2.destroyAllWindows()
试试看这个。我认为它解决了这个问题
这篇文章也有一些建议 向上投票并将有效答案标记为正确!感谢他们实现了这两种方法,但它们都不起作用。