概述
开操作和闭操作都是基于膨胀和腐蚀操作组合形成的。先腐蚀再膨胀就是开操作,先膨胀再腐蚀就是闭操作了。
用开操作可以去除噪声,也可以提取水平或者垂直的直线。
这里我们提一个函数getStructuringElement(),它用来返回指定形状和尺寸的结构元素。
getStructuringElement(shape, ksize, anchor=None)
返回指定形状和尺寸的结构元素
shape 表示内核的形状:矩形 MORPH_RECT,交叉形 MORPH_CROSS,椭圆形 MORPH_ELLIPSE
ksize 表示内核的尺寸
anchor 锚点的位置
我们在以后的操作都离不开这个函数。
一、开操作
我们使用基本的操作,可以去除噪声。
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3))
dst = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel)
当我们改变内核的大小,就能达到不同的效果,比如我们设置ksize=(15,1),就可以
提取图像中的水平直线:
kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 1))
dst = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel)
同理,我们让ksize=(1,15),就可以提取图像中的垂直直线。
二、闭操作
闭操作可以用来填充前景物体中的小洞,或者前景物体上的小黑点。
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (5, 5))
dst = cv.morphologyEx(thresh, cv.MORPH_CLOSE, kernel)
当我们改变内核的形状,也能达到不同的效果,比如提取图像中的圆。
#可以提取图像中的圆点
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (5, 5))
dst = cv.morphologyEx(thresh, cv.MORPH_CLOSE, kernel)
最后
以上就是糟糕麦片为你收集整理的OpenCV学习笔记-开闭操作的全部内容,希望文章能够帮你解决OpenCV学习笔记-开闭操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复