您的位置:首页 > 运维架构

opencv腐蚀、膨胀、开闭运算

2018-03-22 20:28 369 查看
腐蚀和膨胀是最基本的形态学运算。

腐蚀和膨胀是针对白色部分(高亮部分)而言的。

膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。

膨胀就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。

闭运算是先膨胀后腐蚀的过程,其功能是用来填充物体内细小空洞、 闭操作可以消弭狭窄的间断,消除小的孔洞。 同时不明显改变不明显改变其面积。

先腐蚀后膨胀的过程就称为开运算。开操作可以平滑物体轮廓,断开狭窄的间断和消除细小的突出物。

孔洞指的是黑的,突出物和小物体指的是白的

#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

int main()
{
Mat img = imread(路径名);
namedWindow("原始图", WINDOW_NORMAL);
imshow("原始图", img);
Mat out;
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形(MORRPH_ELLIPSE)、交叉型(MORPH_CROSS)的
//膨胀操作
dilate(img, out1, element);
//腐蚀操作
erode(img,out2,element);
//闭运算
morphologyEx(img,closedImg,CV_MOP_CLOSE,element);
//开运算
morphologyEx(img,openImg,CV_MOP_OPEN,element);
namedWindow("处理后", WINDOW_NORMAL);
imshow("处理后", out);
waitKey(0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐