闭运算是先膨胀后腐蚀的过程,数学表达式为:
dst = close(src, element) = erode(dilate(src, element))
闭运算能够排除小型黑洞(黑色区域),也有两种方法,代码示例:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main() {
Mat srcImage;
srcImage = imread("/Users/dwz/Desktop/cpp/b.jpg");
Mat element;
element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat dstImage;
// 第一种实现方法
morphologyEx(srcImage, dstImage, MORPH_CLOSE, element);
// 第二种实现方法
// dilate(srcImage, dstImage, element);
// erode(dstImage, dstImage, element);
imwrite("close.jpg", dstImage);
return 0;
}
输入;
输出: