服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++ opencv图像处理实现图像腐蚀和膨胀示例

C++ opencv图像处理实现图像腐蚀和膨胀示例

2022-12-01 14:11浅念念52 C/C++

这篇文章主要为大家介绍了C++ opencv图像处理实现图像腐蚀和图像膨胀示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1 概念

1.1 腐蚀跟膨胀是最基本的形态学运算

1.2 腐蚀跟膨胀是对图像的白色的部分(亮光部分)进行操作

1.3 腐蚀是对亮光部分进行腐蚀 拥有比原图更小的亮光部分

1.4 膨胀是对亮光部分进行膨胀 拥有比原图更大的亮光部分

这里有一个误区

假如说在图片上的一个字,很多人都会认为膨胀是将图片上的字进行膨胀放大实则不然

C++ opencv图像处理实现图像腐蚀和膨胀示例

可以看到膨胀是将图片上的亮色区域进行放大,字就会变得更小,结构体够大的情况下,字就会看不见了**

C++ opencv图像处理实现图像腐蚀和膨胀示例

可以看到腐蚀是将图片上的亮色区域进行放小,字就会变得更大。

 

2 膨胀

1.先看膨胀函数的原码,可以到opencv官网进行查看

附链接:https://docs.opencv.org/4.5.5/

这里选择是4.5.5 版本

C++ opencv图像处理实现图像腐蚀和膨胀示例

  • src 输入图像
  • dst 输出与src相同大小和类型的图像。
  • kernle 用于膨胀的核结构元素 内核可以使用getStructuringElement创建
  • getStructuringElement函数下面会说到
  • anchor 元素中锚的锚定位置; 默认值(-1,-1)表示锚位于元素中心。
  • iterations 迭代次数
  • borderType 像素外推方法
  • borderValue 当边界为常数时的边界值

当我们用dilate 函数时一般情况下使用前三个参数就可以了,后面参数都有其默认值,可以视情况改变

2 接下来了解getStructuringElement函数

C++ opencv图像处理实现图像腐蚀和膨胀示例

  • shape 形状
  • MORPH_RECT 矩形
  • MORPH_CROSS 交叉形
  • MORPH_ELLIPSE 椭圆形
  • Szie 构造元素的大小(内核尺寸)
  • anchor 锚定位置,默认(-1,1)表示锚位于中心

3 代码

int main()
{
	Mat img1, img2;
	img1 = imread("猫.png");
	imshow("原图", img1);
	Mat element = getStructuringElement(MORPH_RECT, Size(7, 7));
	dilate(img1, img2, element);
	imshow("效果图", img2);
	waitKey(0);
}

效果图 :

C++ opencv图像处理实现图像腐蚀和膨胀示例

 

3 腐蚀

1.先看腐蚀函数的原码

C++ opencv图像处理实现图像腐蚀和膨胀示例

  • src 输入图像
  • dst 输出与src相同大小和类型的图像。
  • kernle 用于腐蚀的核结构元素 内核可以使用getStructuringElement创建
  • anchor 元素中锚的锚定位置; 默认值(-1,-1)表示锚位于元素中心。
  • iterations 迭代次数
  • borderType 像素外推方法
  • borderValue 当边界为常数时的边界值

2 代码

int main()
{
	Mat img1, img2;
	img1 = imread("猫1.jpg");
	imshow("原图", img1);
	Mat element = getStructuringElement(MORPH_RECT, Size(7, 7));
	erode(img1, img2, element);
	imshow("效果图", img2);
	waitKey(0);
}

3 效果图

C++ opencv图像处理实现图像腐蚀和膨胀示例

4 调整数值的轨迹条

1.先看函数原码

C++ opencv图像处理实现图像腐蚀和膨胀示例

  • trackbarname 创建的轨迹条名称。
  • winname 窗口的名称,可以附加在指定的窗口上
  • value 一个指向整形变量的指针,其值反映滑块的位置。 在创建时,滑块的位置由这个变量定义。
  • count滑块的最大位置。 最小的位置总是0。
  • onChange 指针指向每次滑块改变位置时调用的函数。 这个函数的原型应该是void Foo(int,void*); 其中第一个参数是轨迹条位置,第二个参数是用户数据(见下一个参数)。 如果回调函数是NULL指针,则不调用回调函数,只更新值。
  • userdata 作为回调函数传递的用户数据

2 代码

Mat img1, img2;
int chu = 3;
int da = 21;
void hui(int, void*);
int main()
{
	img1 = imread("猫1.jpg");
	namedWindow("原图");
	imshow("原图", img1);
	namedWindow("膨胀");
	createTrackbar("结构元尺寸", "膨胀", &chu, da,hui);
	hui(chu, 0);
	waitKey(0);
}
void hui(int, void*)
{
	int s = chu ;
	Mat elent = getStructuringElement(MORPH_RECT, Size(s, s));
	dilate(img1, img2, elent);
	imshow("膨胀", img2);
}

3 效果图

C++ opencv图像处理实现图像腐蚀和膨胀示例

以上就是C++ opencv图像处理实现腐蚀和膨胀示例的详细内容,更多关于C++ opencv图像腐蚀膨胀的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/Lightismore/article/details/123704171

延伸 · 阅读

精彩推荐
  • C/C++C++控制台用定时器实例代码

    C++控制台用定时器实例代码

    这篇文章主要介绍了C++控制台用定时器实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    祥知道7442021-06-20
  • C/C++Ubuntu 20.04 下安装配置 VScode 的 C/C++ 开发环境(图文教程)

    Ubuntu 20.04 下安装配置 VScode 的 C/C++ 开发环境(图文教程)

    这篇文章主要介绍了Ubuntu 20.04 下安装配置 VScode 的 C/C++ 开发环境,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借...

    _NO GAME NO LIFE11742021-09-07
  • C/C++C++零基础精通数据结构之带头双向循环链表

    C++零基础精通数据结构之带头双向循环链表

    带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代...

    雪芙花9652022-11-02
  • C/C++C语言栈顺序结构实现代码

    C语言栈顺序结构实现代码

    一个能够自动扩容的顺序结构的栈 ArrStack 实例 (GCC编译),有需要的朋友可以参考一下...

    C语言教程网5702021-01-08
  • C/C++Qt下监测内存泄漏的方法

    Qt下监测内存泄漏的方法

    在写Qt应用程序时,由于是采用C++语言,经常会碰到一个令人棘手的问题,那就是内存泄漏,本文主要介绍了Qt下监测内存泄漏的方法,感兴趣的可以了解一...

    灏夏星辰6412022-03-11
  • C/C++C++哈希表之线性探测法实现详解

    C++哈希表之线性探测法实现详解

    线性探测法的优点:只要散列表未满,总能找到一个不冲突的散列地址;缺点:每个产生冲突的记录被散列到离冲突最近的空地址上,从而又增加了更多的...

    liufeng202311172022-11-21
  • C/C++C++实现猜数小游戏的实现

    C++实现猜数小游戏的实现

    这篇文章主要介绍了C++实现猜数小游戏的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    zhaoyipengmzyc4172021-08-16
  • C/C++C语言算法的定义及分析详解

    C语言算法的定义及分析详解

    这篇文章主要为大家详细介绍了C语言算法的定义及分析,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    山風來了又走6002022-01-07