1. 腐蚀
腐蚀操作即用一个矩阵,对图片进行遍历,如果矩阵所在区域的像素完全属于图片的前景(目标),那么保留矩阵的中心点,否则将中心点设为背景像素。
此操作会将前景缩小。
用opencv操作:
img_erode = cv2.erode(src, kernel, iterations)
src:要处理的图片
kernel:要使用的矩阵
iterations:遍历的次数
2. 膨胀
膨胀操作即用一个矩阵,对图片进行遍历,如果矩阵所在区域的像素有任意一个属于图片的前景(目标),那么将矩阵的中心像素设置为前景像素,否则设置为背景像素。
此操作会将前景放大。
用opencv操作:
img_dilate = cv2.dilate(src, kernel, iterations)
src:要处理的图片
kernel:要使用的矩阵
iterations:遍历的次数
3. 开运算
开运算即先对二值图像进行腐蚀操作,然后再进行膨胀操作。这个过程可以去除小型物体和小型噪声,同时保留物体的整体形状和大小。
用opencv操作(开运算与闭运算用的是同一个api,只不过api中的操作值不一样):
img_open = cv2.morphologyEx(src, option, kernel [,...iterations...])
src:要处理的图片
option:要使用的操作方法,开运算使用 cv2.MORPH_OPEN
kernel:要使用的矩阵
iterations:遍历的次数
4.闭运算
闭运算即先对二值图像进行膨胀操作,然后再进行腐蚀操作。这个过程可以填补小型空洞和连接小型断裂,同时保留物体的整体形状和大小。
用opencv操作:
img_open = cv2.morphologyEx(src, option, kernel [,...iterations...])
src:要处理的图片
option:要使用的操作方法,闭运算使用 cv2.MORPH_CLOSE
kernel:要使用的矩阵
iterations:遍历的次数