代码如下:
#include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main() { Mat src = imread("lena.jpg", 0); Mat dst, close, open; Mat element(5, 5, CV_8U, Scalar(1)); threshold(src, dst, 100, 255, THRESH_BINARY_INV); namedWindow("dst", 0); imshow("dst", dst); morphologyEx(dst, close, MORPH_CLOSE, element);//闭运算 namedWindow("close", 0); imshow("close", close); morphologyEx(dst, open, MORPH_OPEN, element);//开运算 namedWindow("open", 0); imshow("open", open); waitKey(0); }
1、morphologyEx 函数其实用法跟腐蚀与膨胀的用法差不多,闭运算的定义是对图像线膨胀再腐蚀,开运算则相反。
闭运算:用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
开运算:用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
版权声明:本文为博主原创文章,未经博主允许不得转载。
Qt 5.3 下OpenCV 2.4.11 开发(14)开运算与闭运算
原文地址:http://blog.csdn.net/dopamy_busymonkey/article/details/47421077