opencv for python (14) 形态学转换(图像腐蚀、图像膨胀、开运算、闭运算、形态学梯度、礼帽、黑帽)

图像腐蚀
对Z中的集合A和B,B对A进行腐蚀的整个过程如下:
1. 用结构元素B,扫描图像A的每一个像素
2. 用结构元素与其覆盖的二值图像做 “与”操作
3. 如果都为1,结果图像的该像素为1. 否则为0
腐蚀处理的结果是使原来的二值图像减小一圈
函数cv2.erode(img,kernel,iterations = 1)
第一个参数源图像
第二个参数内核矩阵
第三个参数迭代次数

import cv2   
import numpy as np   
from matplotlib import pyplot as plt 

img = cv2.imread('src.jpg')
kernel = np.ones((5,5),np.uint8)
ersion = cv2.erode(img,kernel,iterations = 1)

plt.subplot(121),plt.imshow(img)
plt.title('Original'),plt.xticks([]),plt.yticks([])
plt.subplot(122),plt.imshow(ersion)
plt.title('Averaging'),plt.xticks([]),plt.yticks([])
plt.show()

图像膨胀
1. 用结构元素B,扫描图像A的每一个像素
2. 用结构元素与其覆盖的二值图像做 “与”
3. 如果都为0,结果图像的该像素为0;否则为1
函数 cv2.dilate(img,kernel,iterations = 1)
第一个参数源图像
第二个参数内核矩阵
第三个参数迭代次数

dilation = cv2.dilate(img,kernel,iterations = 1)

开运算
先进性腐蚀再进行膨胀就叫做开运算,它被用来去除噪声
闭运算
先膨胀再腐蚀。它经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。
形态学梯度
其实就是一幅图像膨胀与腐蚀的差别。结果看上去就像前景物体的轮廓
礼帽
原始图像与进行开运算之后得到的图像的差
黑帽
进行闭运算之后得到的图像与原始图像的差
函数cv2.morphologyEx(img,op,kernel)
第一个参数源图像
第二个参数进行的操作(MORPH_OPEN - 开运算、MORPH_CLOSE - 闭运算
MORPH_GRADIENT - 形态梯度、MORPH_TOPHAT - “礼帽”、MORPH_BLACKHAT - “黑帽”)
第三个参数内核矩阵

opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值