概述
前文传送门:
引言
今天是图形处理形态学的最后一篇,我们介绍顶帽运算和黑帽运算。
建议先阅读前面两篇图像处理的内容:
形态学之顶帽运算
图像处理顶帽运算是一个获取图像噪声的运算,它是由原始图像减去图像开运算而得到的结果:
顶帽运算 = 原始图像 - 开运算
图像顶帽运算同样是使用形态学扩展函数 morphologyEx() ,它的参数是 MORPH_TOPHAT ,示例如下:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 读取图片
source = cv.imread("demo_noise_white.jpg", cv.IMREAD_GRAYSCALE)
# 设置卷积核
kernel = np.ones((5, 5), np.uint8)
# 开运算
open = cv.morphologyEx(source, cv.MORPH_OPEN, kernel)
# 顶帽运算
dst = cv.morphologyEx(source, cv.MORPH_TOPHAT, kernel)
# 显示结果
titles = ['Source Img','Open Img', 'Tophat Img']
images = [source, open, dst]
# matplotlib 绘图
for i in range(3):
plt.subplot(1, 3, i+1), plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
形态学之黑帽运算
图像处理顶帽运算是一个获取图像内部的小孔,或者前景色中的小黑点的运算。
它是由图像闭运算减去原始图像的操作:
黑帽运算 = 闭运算图像 - 原始图像
图像顶帽运算同样是使用形态学扩展函数 morphologyEx() ,它的参数是 MORPH_BLACKHAT ,示例如下:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 读取图片
source = cv.imread("demo_noise_black.jpg", cv.IMREAD_GRAYSCALE)
# 设置卷积核
kernel = np.ones((5, 5), np.uint8)
# 黑帽运算
dst = cv.morphologyEx(source, cv.MORPH_BLACKHAT, kernel)
# 构造显示结果数组
titles = ['Source Img', 'Black Img']
images = [source, dst]
# matplotlib 绘图
for i in range(2):
plt.subplot(1, 2, i+1), plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
今天的内容比较短,至此,图像形态学的几个基础的运算已经全部介绍完毕,希望各位同学能理解这几个运算的原理,而不是仅仅知道了几个参数或者说几个方法的调用。
示例代码
如果有需要获取源码的同学可以在公众号回复「OpenCV」进行获取。
最后
以上就是高贵流沙为你收集整理的pythonopencv图像形态_Python 图像处理 OpenCV (10):图像处理形态学之顶帽运算与黑帽运算...的全部内容,希望文章能够帮你解决pythonopencv图像形态_Python 图像处理 OpenCV (10):图像处理形态学之顶帽运算与黑帽运算...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复