(二)用形态学滤波器开启和闭合图像
2.1 实现
为了应用较高级别的形态学滤波器,需要用cv::morphologyEx 函数,并传入对应的函数代码。
闭合运算的调用方法:
/ /闭合图像
cv::Mat element5(5,5,CV_8U,cv:Scalar(1));
cv::Mat closed;
cv::morphologyEx(image,closed,cv::MORPH_CLOSE,element5);
输入图像,输出图像,运算符,结构元素
开启运算的调用方法:
cv::Mat opened;
cv::morphologyEx(image,opened,cv::MORPH_OPEN,element5);
输入图像,输出图像,运算符,结构元素
2.2 原理
开启与闭合滤波器的定义,只与基本的腐蚀与膨胀运算有关。闭合,即对图像先膨胀后腐蚀;开启,即图像先腐蚀后膨胀。
对图像做闭合运算如下:
//膨胀原图像
cv::dilate(image,result,cv::Mat());
//就地腐蚀膨胀后的图像
cv::erode(image,image,cv::Mat());
调换这两个函数的调用次序,即可得到开启滤波器。
闭合滤波器的结果:
a白色前景物体中的小空隙已经被填满;
b会把邻近的物体连接起来;
c所有小到不能容纳完整结构元素的空隙或间隙都会被消除;
开启滤波器的结果:
a消除了背景中的几个小物体;
b所有小到不能容纳完整结构元素的物体都会被移除;
异同点:
a 常用于目标检测;
b 闭合可把错误分裂成小碎片的物体连接起来;开启可移除因图像
噪声产生的斑点;
c 根据需要按一定顺序调用这些滤波器。如果优先考虑过滤噪声,
可先开启后闭合,缺点是会消除部分物体碎片。
d 对同一图像进行多次同的开启(或者闭合)运算是没有作用的,
第一次使用后,继续使用同一滤波器,不会使图像产生变化。
用形态学运算变换图像(二)用形态学滤波器开启和闭合图像
最新推荐文章于 2022-09-17 20:18:35 发布