博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv膨胀腐蚀
阅读量:3959 次
发布时间:2019-05-24

本文共 1972 字,大约阅读时间需要 6 分钟。

1.膨胀腐蚀原理

膨胀就是亮点越亮,暗点越暗,腐蚀相反

2.膨胀

2.1api

dilate(const Mat &src, Mat &dst, Mat kernel, Point anchor=Point(-1,-1), int iterations=1)src:輸入圖,可以多通道,深度可為CV_8U、CV_16U、CV_16S、CV_32F或CV_64F。dst:輸出圖,和輸入圖尺寸、型態相同。kernel:結構元素,如果kernel=Mat()則為預設的3×3矩形,越大膨脹效果越明顯。anchor:原點位置,預設為結構元素的中央。iterations:執行次數,預設為1次,執行越多次膨脹效果越明顯。

其中kernel由getStructuringElement()得到

Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1))shape:模板形狀,有MORPH_RECT、MORPH_ELLIPSE、MORPH_CROSS(矩阵、椭圆、十字)三種可選。ksize:模板尺寸。

2.2代码演示

Mat srcImg = imread("E:\\OpenCV\\images\\qsmy.png");Mat dstImg;Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));dilate(srcImg, dstImg, element, Point(-1, -1), -1);imshow("dst", dstImg);imshow("img", srcImg);waitKey(0);

在这里插入图片描述

3.腐蚀

不做赘述,只是效果与膨胀相反,其余相同

4.基于腐蚀和膨胀的形态学高级操作

开运算:

先腐蚀,再膨胀,可清除一些小东西(亮的),放大局部低亮度的区域

闭运算:

先膨胀,再腐蚀,可清除小黑点

形态学梯度:

膨胀图与腐蚀图之差,提取物体边缘

顶帽:

原图像-开运算图,突出原图像中比周围亮的区域

黑帽:

闭运算图-原图像,突出原图像中比周围暗的区域

4.1api

V_EXPORTS_W void morphologyEx( InputArray src, OutputArray dst,                                int op, InputArray kernel,                                Point anchor=Point(-1,-1), int iterations=1,                                int borderType=BORDER_CONSTANT,                                const Scalar& borderValue=morphologyDefaultBorderValue() );这里的参数和上面的腐蚀膨胀全都一样,除了opop是用来选择上面的5个操作的MORPH_OPEN – 开运算(Opening operation)MORPH_CLOSE – 闭运算(Closing operation)MORPH_GRADIENT - 形态学梯度(Morphological gradient)MORPH_TOPHAT - 顶帽(Top hat)MORPH_BLACKHAT - 黑帽(Black hat)

4.2代码演示

Mat srcImg = imread("E:\\OpenCV\\images\\car.jpg");Mat dstImg;Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));//morphologyEx(srcImg, dstImg, MORPH_OPEN, element);  //开运算//morphologyEx(srcImg, dstImg, MORPH_CLOSE, element);  //闭运算morphologyEx(srcImg, dstImg, MORPH_GRADIENT, element);  //形态学梯度运算//morphologyEx(srcImg, dstImg, MORPH_TOPHAT, element);  //顶帽运算//morphologyEx(srcImg, dstImg, MORPH_BLACKHAT, element);  //黒帽运算imshow("dst", dstImg);imshow("img", srcImg);waitKey(0);

转载地址:http://zumzi.baihongyu.com/

你可能感兴趣的文章