【问题标题】:Fill objects - openCV/Python填充对象 - openCV/Python
【发布时间】:2017-01-25 07:32:37
【问题描述】:

在基于remove-noise-in-bw-image 的脚本中,我尝试填充对象(相当于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 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()

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    尝试阅读此link。我认为它解决了这个问题。

    这个帖子python-equivalent-to-matlab-funciton-imfill-for-grayscale也有一些指点。

    【讨论】:

    • 赞成并标记为正确答案有效!谢谢
    • 试图实现这两个,但它们都不起作用。
    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2015-03-13
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多