opencv_11图像腐蚀膨胀

//先定义结构体

getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));

参数1:结构体形状MORPH_RECT\ MORPH_CROSS\ MORPH_ELLIPSE
参数2:大小,只能是正奇数
参数3:锚点位置

//膨胀,就是使用自定义的结构体对图像扫图,每个结构体有一个锚点,Point(-1,-1)将锚点定义在中心。
//膨胀就是使锚点对应的像素值为结构体覆盖下的像素值的最大值

dilate(src, dst, structureElement, Point(-1, -1), 1);

dilate(input,output,结构体形状,锚点中心);

//腐蚀,就是使用自定义的结构体对图像扫图,每个结构体有一个锚点,Point(-1,-1)将锚点定义在中心。
//腐蚀就是使锚点对应的像素值为结构体覆盖下的像素值的最小值

erode(src, dst, structureElement);

//程序可动态膨胀腐蚀,,使用 createTrackbar
//注意此处要新建窗口,与腐蚀膨胀的图片同名

namedWindow("xingtaixue", WINDOW_AUTOSIZE);
	createTrackbar("Element Size", "xingtaixue", &element_size, max_size, CallBack_Demo);
#include<opencv2/opencv.hpp>
#include<iostream>


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

int main()
{
  src = imread("C:\\Users\\Administrator\\Pictures\\Saved Pictures\\timg6ZAGKYHR.jpg");
	if (src.empty())
	{
		printf("ould not find image \n");
		return -1;
	}
	namedWindow("opencv set up demo", WINDOW_AUTOSIZE);
	imshow("opencv set up demo", src);

	namedWindow("xingtaixue", WINDOW_AUTOSIZE);
	createTrackbar("Element Size", "xingtaixue", &element_size, max_size, CallBack_Demo);
	CallBack_Demo(0, 0);
	waitKey(0);
	return 1;
}
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("xingtaixue", dst);
	
	return;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值