用openCV实现形态学操作

尊师:
© Fu Xianjun. All Rights Reserved.

老样子先进行把图片放入文件夹如何用openCV打开

用openCV实现形态学操作

形态学操作(移除噪声)
先使用开运算去除图像中的细小白色噪点,然后通过腐蚀运算移除边界像素,得到的图像中的白色区
域肯定是真实前景,即靠近硬币中心的区域;膨胀运算使得一部分背景成为了物体
到的边界,得到的图像中的黑色区域肯定是真实背景,即远离硬币的区域。
剩下的区域,还不能确定是前景还是背景。可通过膨胀图减去腐蚀图得到,下图中 的白色部分为不确定区域。

    import cv2

    import numpy as np

    img = cv2.imread("1.png")

    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

     #二值化

    ret,binary = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

     **形态学操作**

      #开操作

      kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))

      opening = cv2.morphologyEx(binary,cv2.MORPH_OPEN , kernel,iterations =2)

      #膨胀

      sure_bg = cv2.dilate(opening,kernel,iterations=3)

      #腐蚀

      sure_fg = cv2.erode(opening,kernel,iterations =3)

      unknow = cv2.subtract(sure_bg,sure_fg)




   cv2.imshow("img",img)

   cv2.imshow("binary",binary)

   cv2.imshow("opening",opening)

    cv2.imshow("sure_bg",sure_bg)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

运行结果如下:
用openCV实现形态学操作

注:本此学习的操作内容可能有点困难,可以结合教材来理解。

上一篇:Git Please make sure you have the correct access rights and the repository exists.


下一篇:[SSH] SSH Troubleshooting