opencv膨胀腐蚀
1.膨胀腐蚀原理见博主膨胀就是亮点越亮,暗点越暗,腐蚀相反2.膨胀2.1apidilate(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:輸出圖,和輸入圖
·
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() );
这里的参数和上面的腐蚀膨胀全都一样,除了op
op是用来选择上面的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);
更多推荐
所有评论(0)