Wan*_*ong 2 matlab opencv image-processing mathematical-morphology
我想检测下面图像的背景,其前景总是很多黑点:
img.png
有人使用磁盘形结构元素对图像执行形态学闭合,并获得良好的结果:
Matlab代码:
img = imread('c:\img.png');
bg = imclose(img, strel('disk', 15));
figure('name', 'bg'), imshow(bg);
Run Code Online (Sandbox Code Playgroud)
那么如何在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)));
Run Code Online (Sandbox Code Playgroud)
我必须稍微修改结构元素大小以产生与MATLAB示例类似的结果:
由于您似乎对使用OpenCV进行形态学操作感兴趣,我建议您对文档进行通读,以了解它的所有功能.