8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何使用 OpenCV 连接图像中的边缘?

ryandra 2月前

168 0

我有一张二进制图像,其中包含一些矩形形状,其中只有边缘完全可见。我想连接缺失的线条并制作完整的矩形。如何使用 Open... 实现此目的

我有一张二值图像,其中包含一些矩形形状,其中只有边缘完全可见。我想连接缺失的线条并制作完整的矩形。如何使用 OpenCV 实现这一点。

source image

我的目标结果如下:

帖子版权声明 1、本帖标题:如何使用 OpenCV 连接图像中的边缘?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由ryandra在本站《opencv》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在做一个项目,用于检测前额的 Omega 状皱纹(抑郁症的诊断特征)。根据这篇论文,我发现 Hessian 过滤器是检测皱纹的好方法:Yap,M....

    我正在开展一个项目,用于检测前额的 Omega 状皱纹(抑郁症的诊断特征)。根据这篇论文,我发现 Hessian 滤波器是检测皱纹的好方法:

    Yap, MH、Alarifi, J.、Ng, C.、Batool, N. 和 Walker, K. (2019)。自动面部皱纹注释器。计算机科学讲义(第 676-680 页)。https: https://doi.org/10.1007/978-3-030-11018-5_5

    我使用了 skimage 的 hessian 过滤器,尽管根据 这个 ,但对我来说已经足够了。

    我按顺序应用了以下内容:

    1. 高斯模糊。
    2. Hessian 滤波器。
    3. 合拢操作。

    这是我的代码:

    image = io.imread("1.jpg", as_gray=True)
    image = cv2.GaussianBlur(image, (5,5), 0)
    hessian_image = filters.hessian(image)
    
    kernel = np.ones((5,5), np.uint8)
    closing = cv2.morphologyEx(hessian_image, cv2.MORPH_CLOSE, kernel)
    
    closing = np.array(np.divide(closing, np.amax(closing)), dtype=np.float64)
    closing *= 255
    closing = np.uint8(closing)
    
    cv2.imshow("Closing", closing)
    cv2.waitKey(0)
    

    这是输入图像:

    enter image description here

    这是输出图像:

    enter image description here

    我无法使用模板匹配检测类似 Omega(或类似矩形)的形状,因为它们在不同图像之间会有所不同。您还有其他想法吗?

返回
作者最近主题: