用openCV实现形态学操作
作者:互联网
尊师:
© Fu Xianjun. All Rights Reserved.
老样子先进行把图片放入文件夹如何用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()
运行结果如下:
注:本此学习的操作内容可能有点困难,可以结合教材来理解。
标签:kernel,sure,img,opening,cv2,形态学,openCV,bg,操作 来源: https://blog.csdn.net/WJJ_Doublekill/article/details/117656654