opencv图像腐蚀

腐蚀(Erosion)是一种形态学图像处理操作,用于移除图像中的小白点、细小物体或者边缘。它通过将结构元素应用于图像上的像素来实现。

以下是opencv实现图像腐蚀的代码

c 复制代码
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main() {
	Mat srcImage = imread("3.png");
	imshow("原图", srcImage);
	waitKey(0);
	return 0;
}

我们先显示一下原始图片。

1 为啥#include的时候要包含这么长的头文件,直接包含这个hpp不好吗?

因为这样做首先可以实现选择性地包含文件,其次可以防止额外相同的文件被包含。

2 highgui模块就是图像的一些高级图像界面模块你看它后缀名gui。imgproc模块是图像处理模块。

然后是腐蚀的过程,下面先是代码

c 复制代码
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main() {
	Mat srcImage = imread("3.png");
	imshow("原图", srcImage);
	Mat element = getStructuringElement(MORPH_RECT, Size(30, 30));
	Mat dstImage;
	erode(srcImage, dstImage, element);
	imshow("腐蚀图", dstImage);
	waitKey(0);
	return 0;
}

1 getStructuringElement用来获取结构元素的函数,结构元素就像是一种小小的形状模板,用于在图像处理中执行各种操作。比如,可以想象成一个小小的图案,比如一个小方块、圆圈或者十字形。这个小形状可以被放置在图像上,然后根据它的形状和大小,来改变图像中的像素值。

2 erode常见的参数就是输入,输出,结构元素。

这个是效果图我设置Size(30,30)的时候

3 可以试试改变结构元素的形状

c 复制代码
Mat element = getStructuringElement(MORPH_ELLIPSE, Size(1, 1));

Size(10,30)的时候

Size(1,1)的时候

可以看出结构元素越大腐蚀的效果就越明显。

我们还可以实现迭代次数的增加,这样图像的边缘更加紧凑(为啥感觉没毛变化)

c 复制代码
	erode(srcImage, dstImage, element,cv::Point(-1,-1),13,0);

对了,我简单说一下腐蚀的原理

这个涉及的语言讲不好讲还不如看视频,博客,以下的都不错

参考资料:

https://www.bilibili.com/video/BV1NF411w7fM/?spm_id_from=333.337.search-card.all.click

https://zhuanlan.zhihu.com/p/433688663

相关推荐
天天进步20151 分钟前
实战指南:Python全栈项目——基于机器学习的推荐引擎设计
人工智能·数据分析
振浩微433射频芯片4 分钟前
工业环境下的“硬核”选择:如何科学评估国产433芯片的可靠性?
网络·人工智能·科技·单片机·物联网·学习
星座5287 分钟前
AI-Python机器学习与深度学习全栈实战:从机器学习、深度学习到自动化Agent在科学研究中的深度应用全揭秘
人工智能·python·机器学习
山屿落星辰9 分钟前
ascend-transformer-boost (ATB) - Transformer推理加速实战
人工智能·深度学习·transformer
安迁岚11 分钟前
基于珠三角城市热岛热点核心中心点的等级化点格局分析
人工智能·arcgis·信息可视化·数据挖掘·数据分析·地统计
同元软控14 分钟前
建模也有Skills了:MWORKS.Sysplorer Skills已开源至MoHub!
人工智能·开源·mworks
SKY -dada14 分钟前
02--光伏电站的“隐形杀手”——直流拉弧:AI智能识别如何构筑安全防线?
人工智能·安全
Deepoch15 分钟前
Deepoc 具身智能开发板,让农业机器人更聪明好用
人工智能·机器人·具身模型·deepoc·采摘
1368木林森17 分钟前
多轮对话RAG【第十五篇】:工业级上下文管理方案,指代消除、会话隔离、动态检索伸缩
人工智能·rag
bryant_meng18 分钟前
【GAN】Generative Adversarial Network
人工智能·深度学习·神经网络·生成对抗网络·gan