美文网首页
形态学之黑帽运算

形态学之黑帽运算

作者: 大龙10 | 来源:发表于2021-10-28 06:38 被阅读0次

    《OpenCV轻松入门:面向Python》读书笔记
    作者:李立宗
    出版社:电子工业出版社
    出版时间:2019-05

    第8章 形态学操作

    8.8 黑帽运算

    8.8.1 定义

      黑帽运算是用闭运算图像减去原始图像的操作。黑帽运算能够获取图像内部的小孔,或前景色中的小黑点,或者得到比原始图像的边缘更暗的边缘部分。
      例如,图8-25所示是一个黑帽运算,其中:


    图8-25 黑帽运算示意图

      从图8-25可以看到,黑帽运算使用闭运算图像减原始图像得到黑帽图像,黑帽图像是原始图像中的小孔(噪声)。
      例如,在图8-26中,左图是原始图像,中间的图是闭运算图像,右图是闭运算图像减原始图像得到的黑帽图像,黑帽图像显示的是比原始图像边缘更暗的边缘部分。


    图8-26 黑帽运算实例示意图

    8.8.2 函数

      通过将函数cv2.morphologyEx()中操作类型参数op设置为“cv2.MORPH_BLACKHAT”,可以实现黑帽运算。其语法结构如下:

    result=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

    8.8.3 程序示例

    【例8.11】使用函数cv2.morphologyEx()实现黑帽运算。

    import cv2
    import numpy as np
    o1=cv2.imread("blackhat.bmp",cv2.IMREAD_UNCHANGED)
    o2=cv2.imread("lena.bmp",cv2.IMREAD_UNCHANGED)
    k=np.ones((5,5),np.uint8)
    r1=cv2.morphologyEx(o1,cv2.MORPH_BLACKHAT,k)
    r2=cv2.morphologyEx(o2,cv2.MORPH_BLACKHAT,k)
    cv2.imshow("original1",o1)
    cv2.imshow("original2",o2)
    cv2.imshow("result1",r1)
    cv2.imshow("result2",r2)
    cv2.waitKey()
    cv2.destroyAllWindows()
    

    8.8.4 结果

    图8-27 【例8.11】程序的运行结果

    相关文章

      网友评论

          本文标题:形态学之黑帽运算

          本文链接:https://www.haomeiwen.com/subject/mkltaltx.html