在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