【OpenCV基础】一分钟带你了解图像膨胀与腐蚀操作

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处


膨胀与腐蚀是图像处理中最常用的形态学操作手段,其中要涉及到一个主要的API,即生成卷积核的API。

一、膨胀操作

原理:将卷积核内的像素最大值代替区域内锚点的值,这样图像就会变白,也就是白色区域扩大。
所谓锚点,就是卷积运算后赋予某点的值,该点就是锚点。锚点默认是点Point(-1, -1),即为区域的中心像素。

1.1API-dilate

函数原型如下:

dilate(src, dst, kernel);

1.2全部代码

#include<opencv2\opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main()
{
	Mat src, dst;
	src = imread("D:/images/box1.png");
	if (src.empty())
	{
		cout << "could not load image !";
		return -1;
	}
	
	imshow("原图", src);
	Mat kernel;
	kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));//设计一个卷积核
	dilate(src, dst, kernel);//膨胀API
	imshow("膨胀后", dst);

	waitKey(0);
	return 0;
}

1.3效果展示

在这里插入图片描述

1.4结论

膨胀后,由于像素值变大后导致白斑区域扩大

二、腐蚀操作

原理:将卷积核内的像素最小值代替区域内锚点的值,因此腐蚀跟膨胀刚好效果是相反的。
通过腐蚀,理解为浓硫酸的腐蚀效果,图像黑色的区域扩大了。

2.1API-erode

腐蚀操作函数原型如下

erode(src, dst, kernel);

2.2全部代码

#include<opencv2\opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main()
{
	Mat src, dst;
	src = imread("D:/images/box1.png");
	if (src.empty())
	{
		cout << "could not load image !";
		return -1;
	}
	
	imshow("原图", src);
	Mat kernel;
	kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));//设计一个卷积核
	erode(src, dst, kernel);//腐蚀API
	imshow("膨胀后", dst);

	waitKey(0);
	return 0;
}

2.3效果展示

在这里插入图片描述

2.4结论

腐蚀后,由于像素值变小,导致白斑区域缩小。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌小超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值