#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; // 膨胀:计算掩膜覆盖下图像的最大像素值来替换锚点的像素 // 简单说 用高像素点来代替低像素点,图片越来越白 // 腐蚀:计算掩膜覆盖下图像的最小像素值来替换锚点的像素 // 图片越来越黑 Mat src, dst; int element_size = 3; int max_size = 21; void CallBack_dilate(int, void *) { int s = element_size * 2 + 1; Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1)); dilate(src, dst, structureElement, Point(-1, -1), 1); imshow("output image", dst); return ; } void CallBack_erode(int, void*) { int s = element_size * 2 + 1; Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1)); erode(src, dst, structureElement, Point(-1, -1), 1); imshow("output image", dst); return ; } int main() { Mat src1, src2, gray_src, dst; src = imread("/Users/apple/Desktop/birth.jpg", IMREAD_COLOR); //src2 = imread("/Users/apple/Desktop/test2.jpg", IMREAD_COLOR); if (src.empty()) { // if (!src.data()) cout << "could not load image..." << endl; return -1; } imshow("input", src); namedWindow("output image", CV_WINDOW_AUTOSIZE); createTrackbar("dilate size: ", "output image", &element_size, max_size, CallBack_dilate); createTrackbar("erode size:", "output image", &element_size, max_size, CallBack_erode); CallBack_dilate(0, 0); waitKey(0); return 0; }
OpenCV 膨胀and腐蚀
猜你喜欢
转载自blog.csdn.net/ringggr_h/article/details/79993490
今日推荐
周排行