openCV学习笔记(八)--卷积,边缘处理,边缘提取,边缘检测

1.自定义线性滤波–卷积
在这里插入图片描述
卷积工作原理–即中心值根据周围定义大小邻域,从而计算成新值
在这里插入图片描述
在这里插入图片描述
常见的卷积算子:
在这里插入图片描述

//Sobel算子--获取边缘比较强,用于边缘检测
	Mat SX, SY;
	Mat sobel_x = (Mat_<int>(3, 3) << -1, 0, 1, -2, 0, 2, -1, 0, 1);
	filter2D(src, SX, -1, sobel_x, Point(-1, -1), 0.0);
	//imshow("sobel_x", SX);

	Mat sobel_y = (Mat_<int>(3, 3) << -1, -2, -1, 0, 0, 0, 1, 2, 1);
	filter2D(src, SY, -1, sobel_y, Point(-1, -1), 0.0);
	//imshow("sobel_y", SY);

	//拉普拉斯算子--获取比较完整的边缘信息
	Mat laplas;
	Mat laplas_k = (Mat_<int>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);
	filter2D(src, laplas,-1,laplas_k, Point(-1, -1), 0.0);
	//imshow("lap", laplas);

自定义卷积模糊:
在这里插入图片描述

//自定义卷积加深模糊--定义卷积并且随着时间而扩大结构面积,从而加大模糊程度
	Mat autoK;
	int c = 0;
	int index = 0;
	int ksize = 3;
	while (true)
	{
   
   
		c = waitKey(500);//图像变换延迟时间
		if ((char)c == 27) {
   
   //c==27-->按ESC退出
			break;
		}
		ksize = 4 + (index % 8) * 2 + 1;//卷积最小面积从5开始,随后逐渐加大
		Mat kernel = Mat::ones(Size(ksize, ksize), CV_32F) / (float)(ksize * ksize);//卷积计算公式
		filter2D(src, autoK, -1, kernel, Point(-1, -1));
		index++;
		imshow("auto", autoK);

	}

2.卷积边缘处理
在这里插入图片描述
在这里插入图片描述
对于高斯模糊,默认为DEFAULT

在这里插入图片描述

	int top = (int)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值