0
点赞
收藏
分享

微信扫一扫

opencv操作——膨胀与腐蚀

寒羽鹿 2022-03-24 阅读 77
c++

膨胀与腐蚀
形态学的四个基本操作:膨胀、腐蚀、开、闭。
膨胀:图像A和结构元素B,结构B在A上移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。(最大值)
腐蚀:不同是以最小值替换锚点重叠下图像的像素值。(最小值)

代码如下:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

Mat src, dst;
int element_size = 3;
int max_size = 21;
void CallBack_Demo(int, void*);

int main(int argc, char** argv) {
	src = imread("002.jpg");   //D:\\sougou\\image\\1.jpg
	if (!src.data) {
		printf("could not load image...");
		return -1;
	}
	char input_image[] = "input image";
	namedWindow(input_image,WINDOW_AUTOSIZE);
	imshow(input_image, src);


	//char output_image[] = "output image";
	namedWindow("output_image", WINDOW_AUTOSIZE);
	createTrackbar("Element Size:", "output_image", &element_size, max_size, CallBack_Demo);
	CallBack_Demo(0, 0);

	waitKey(0);
	return 0;


}

void CallBack_Demo(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);   //膨胀  变亮
	erode(src, dst, structureElement);  //腐蚀  变黑
	imshow("output_image", dst);
	return;
}

膨胀效果如下:

腐蚀效果如下:

举报

相关推荐

0 条评论