Qt 5.3 下OpenCV 2.4.11 开发(14)开运算与闭运算

代码如下:

#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 函数其实用法跟腐蚀与膨胀的用法差不多,闭运算的定义是对图像线膨胀再腐蚀,开运算则相反。

闭运算:用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

开运算:用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。

你可能感兴趣的:(C++,opencv,图像处理算法)