文章目录
- 简介
- 总结
- 形态学-腐蚀操作
- 形态学-膨胀操作
- 形态学-开/闭操作
- 开运算
- 闭运算
- 梯度运算
- 礼帽和黑帽
简介 【OpenCV|OpenCV计算机视觉实战(Python)| 04、图像形态学处理】本节为《OpenCV计算机视觉实战(Python)》版第四讲,图像形态学处理,的总结。
总结 形态学-腐蚀操作
img = cv2.imread('dige.png')cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()kernel = np.ones((5,5), np.unit8)
erosion = cv2.erode(pie, kernel, iter=1)cv2.imshow('img_erode', erosion)
cv2.waitKey(0)
cv2.destroyAllWindow()
形态学-膨胀操作
- 腐蚀操作去除毛刺
- 腐蚀操作中的参数:kernel 表示卷积核,iter表示腐蚀操作的次数。
- 腐蚀的结果,与,迭代次数,核大小有关系。腐蚀次数增大,图像线条会变细。
img = cv2.imread('dige.png')
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()kernel = np.ones((5,5), np.uint8)
dilate = cv2.dilate(img, kernel, iter=1)cv2.imshow('dilate', dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()
形态学-开/闭操作 开运算
- 与腐蚀操作互为逆运算
- 参数的定义与腐蚀操作一致
img = cv2.imread('dige.png')
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()kernel = np.ones((5,5), np.unit8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)cv2.imshow('opening', opening)
cv2.waitKey()
cv2.destroyAllWindows()
闭运算
- 先腐蚀,再膨胀
- 能够有效去除毛刺
img = cv2.imread('dige.png')
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()
梯度运算
- 先膨胀,再腐蚀
- 无法去除毛刺,只是扩大了边缘
# 梯度 = 膨胀 - 腐蚀
pie = cv2.imread('pie.png')
kernel = np.ones((7,7),np.unit8)
dilate = cv2.dilate(pie,kernel, iter=5)
erosion = cv2.erode(pie,kernel, iter=5)res = np.hstack((dilate, erosion))cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()# 梯度
gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()
礼帽和黑帽
- 梯度 = 膨胀 - 腐蚀
- 梯度运算可以得到轮廓
- 礼帽 = 原始输入 - 开运算结果(带刺的-没刺的,剩下的是刺)
- 黑帽 = 闭运算 - 原始输入(扩大后的刺-带刺的,剩下的是膨胀的刺的轮廓)
img = cv2.imread('dige.png')# 礼帽
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)# 黑帽
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
推荐阅读
- 人脸识别|【人脸识别系列】| 实现自动化妆
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- opencv|图像处理之椒盐噪声的添加与去除
- 人脸识别|【人脸识别系列】| 实现人脸截图保存并编写128维特征向量
- opencv|网络爬虫入门练习
- OpenCV|【OpenCV 完整例程】89. 带阻滤波器的传递函数
- OpenCV|【OpenCV 完整例程】90. 频率域陷波滤波器
- OpenCV|【OpenCV 完整例程】22. 图像添加非中文文字
- OpenCV|【OpenCV 完整例程】91. 高斯噪声、瑞利噪声、爱尔兰噪声