OpenCV C++形态学操作-开运算与闭运算
📅 2026/7/31 2:20:43
👁️ 阅读次数
📝 编程学习
这个程序使用OpenCV C++对图像进行形态学里的开运算与闭运算。
开运算:先腐蚀后膨胀,可以消除小物体/噪声,保留大物体的形状和大小
闭运算:先膨胀后腐蚀,可以填充小孔洞/裂缝,连接邻近物体
先显示的是开运算的输入(左)与输出(右),可以看到小物体/噪声被去掉了:
按任意键(比如空格)之后,显示闭运算的输入(左)与输出(右),可以看到小孔洞被填充了:
ksize是20,因为输入图像的尺寸比较大(500*680),ksize需要根据实际情况调整。
代码:
int main() { Mat in,out; int ksize = 20; in= imread("open.png"); erode(in, out, Mat::ones(ksize, ksize, CV_8UC1)); dilate(out, out, Mat::ones(ksize, ksize, CV_8UC1)); imshow("in", in); imshow("out", out); waitKey(); in = imread("close.png"); dilate(in, out, Mat::ones(ksize, ksize, CV_8UC1)); erode(out, out, Mat::ones(ksize, ksize, CV_8UC1)); imshow("in", in); imshow("out", out); waitKey(); }
编程学习
技术分享
实战经验