opencv-学习笔记(4)形态学转变
本章讲了几种形态学操作
- 腐蚀erode
- 膨胀dilate
- 开运算MORPH_OPEN
- 闭运算MORPH_CLOSE
- 形态学梯度MORPH_GRADIENT
- 礼帽MORPH_TOPHAT
- 黑帽子MORPH_BLACKHAT
腐蚀erode
首先卷积核滑动,如果对应的原图像所有像素都是1,中心元素就保持,否则为0
随着卷积核的靠近前景的所有像素都会被腐蚀-变0.
我们可以去除白噪声,也可以断开两个连在一起的物体
import cv2
import numpy as np
img=cv2.imread('black.png',0)
kernel=np.ones((5,5),np.uint8)#定义一个卷积核以及图像类型
erosion=cv2.erode(img,kernel,iterations=1)
cv2.imshow('sdss',img)
cv2.imshow('sds',erosion)
cv2.waitKey(0)
膨胀操作dilate
可以连接物体
import cv2
import numpy as np
img=cv2.imread('connection.jpg',0)
kernel=np.ones((7,7),np.uint8)
erosion=cv2.erode(img,kernel,iterations=1)
dilate=cv2.dilate(img,kernel,iterations=1)
cv2.imshow('sdss',img)
cv2.imshow('sdsa',dilate)
cv2.waitKey(0)
开运算morphologyEx(图像对象,cv2.MORPH_OPEN,kernel)#morph改变
对图像进行腐蚀再膨胀就叫开运算
同样也用于去噪声
闭运算morphologyEx(img,cv2.MORPH,kernel)
就是先膨胀再腐蚀
一般用来填充前景物体中的小洞
形态学梯度
就是衣服图像膨胀和腐蚀的差别
看上去想轮廓而已
morphologyEx(img,cv2.MORPH_GRADIENT,kernel)
礼帽
是图像与开运算后的差,可以获取背景噪声
参数cv2.MORPH_TOPHAT
黑帽
是图像与闭运算后的差,获取前景噪声
参数cv2.MORPH_BLACKHAT