形态学操作下的图像变换
1. 开闭运算
1.1 开闭运算的定义与实现
开闭运算基于基本的腐蚀和膨胀操作。闭运算定义为对图像先膨胀再腐蚀,开运算则是先腐蚀再膨胀。
以下是计算闭运算的代码:
// dilate original image
cv::dilate(image, result, cv::Mat());
// in-place erosion of the dilated image
cv::erode(result, result, cv::Mat());
交换上述两个函数调用顺序即可得到开运算。
1.2 开闭运算的效果
- 闭运算 :填充白色前景对象中的小孔,连接相邻对象。基本原理是,任何太小而无法完全包含结构元素的孔洞或间隙都会被消除。
- 开运算 :从场景中消除小对象,所有太小而无法包含结构元素的对象都会被移除。
1.3 开闭运算的应用
开闭运算常用于对象检测。闭运算可将错误分割成小块的对象连接起来,开运算可去除图像噪声引入的小斑点。可以按顺序使用它们,若想优先进行噪声过滤,可先应用开运算再应用闭运算,但这可能会消除部分分割对象。
1.4 开闭运算的幂等性
多次对图像应用相同的开(或闭)运算符没有效果,因为第一次开运算已填充孔洞,再次应用不会产生其他变化,在数学上,这些运算符具有幂等性。
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



