#Day3#关于对图像进行腐蚀和膨胀处理

(1)首先,我们打开并显示一张彩色图片“image”

image = cv.imread("D:\OpenCV\CVproject\image/lenacolor.png")
cv.imshow("image",image)

(2)将得到的彩色图片拆分成b,g,r单通道图片,再进行二值化,在这里我们使用cv.threshold函数,类型为cv.THRESH_BINARY,例如:r,bb = cv.threshold(b,127,255,cv.THRESH_BINARY),其中bb为处理结果,b为原图像,127为阈值,这种方法得到的是二进制阈值化,显示二值化图形bb

b,g,r = cv.split(image)
r1,bb=cv.threshold(b,127,255,cv.THRESH_BINARY) r2,gg=cv.threshold(g,127,255,cv.THRESH_BINARY) r2,rr=cv.threshold(r,127,255,cv.THRESH_BINARY)

  接下来,我们分别对b,g,r二值化图像分别进行不同的处理方法

(3)对b图像进行图像腐蚀,作用:去除孤立的点和线,保留主要的轮廓。原理:使用卷积核kernel对图像进行遍历,都是1则此点为1,否则为0。显示腐蚀图形fb

kernel=np.ones((3,3),np.uint8)#创建一个3*3的矩阵,且里面元素全为1
fb = cv.erode(bb,kernel,iterations=1)#iterations=n,n为腐蚀次数
cv.imshow("fb",fb)
同理显示膨胀图像pb
pb = cv.dilate(bb,kernel,iterations=1)
cv.imshow("pb",pb)#图像显示

腐蚀表现为白色减少,黑色增加,同理膨胀表示为黑色减少,白色增加。

(4)开运算=膨胀{腐蚀(图像)}:代码openingb = cv.morphologyEx(bb,cv.MORPH_OPEN,kernel)         闭运算=腐蚀{膨胀(图像)}:代码closingb = cv.morphologyEx(bb,cv.MORPH_CLOSE,kernel)           这里opencv提供了许多算法如梯度运算cv.MORPH_GRADIENT,礼帽运算cv.MORPH_TOPHAT等

 





 

猜你喜欢

转载自www.cnblogs.com/jdxxuexi/p/12199088.html