在opencv中实现imclose(IM,SE)
我想检测以下图像的背景,其前景总是很多黑点:
img.png
有人用磁盘形结构元素对图像进行形态学闭合并获得好的结果:
Matlab代码:
img = imread('c:img.png');
bg = imclose(img, strel('disk', 15));
figure('name', 'bg'), imshow(bg);
那么如何在opencv中实现imclose(IM,SE)来取代MATLAB中的工作,或者还有另一种更好的方法来使用opencv方法来检测这种背景?
您可以使用cv::getStructuringElement()
创建一个椭圆结构元素,并使用cv::morphologyEx()
来执行关闭操作。
cv::morphologyEx(img, img, cv::MORPH_CLOSE, cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(21,21)));
我不得不稍微修改结构元素的大小,以产生类似于MATLAB示例的结果:
由于您似乎对OpenCV的形态操作感兴趣,因此我建议您为该文档提供一个通读,以了解它的全部功能。
链接地址: http://www.djcxy.com/p/61165.html上一篇: Implementing imclose(IM, SE) in opencv
下一篇: image segmentation for connected character in morphology