#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int element_size = 1;
int max_size = 21;
Mat src;
//拖动条回调
void trackbarCallback(int pos, void* userdata) {
int size = pos * 2 + 1;
Mat kernel = getStructuringElement(MORPH_RECT, Size(size, size));
Mat dst;
// 1.腐蚀 取最小值 如果是黑白图片腐蚀会去掉白色噪点
//erode(src, dst, kernel);
// 2.膨胀 取最大值 如果是黑白图片腐蚀会去掉黑色噪点
dilate(src, dst, kernel);
imshow("output_img", dst);
}
int main() {
// 1.读取一张图片
src = imread("D:/opencv/test/test.jpeg");
// 2.将一张图片写入一个文件
imwrite("D:/opencv/test/copy.jpeg", src);
// 3.显示图片
imshow("src", src);
namedWindow("output_img");
// 创建trackbar
createTrackbar("trackbar", "output_img", &element_size, max_size, trackbarCallback);
waitKey(0);
return 0;
}
腐蚀效果

image.png
膨胀效果

image.png