腐蚀和膨胀

在这两个操作中都需要有一个滑动窗口一样的小块,这个小块在整副图像上面进行一个像素一个像素的滑动。

膨胀

膨胀操作:当前像素值等于该小块覆盖下的图像区域的最大像素值。
从而当背景色为白色,字体为黑色时,执行一次膨胀操作,黑色字体将变细。
相关的api使用:

Mat ele = getStructuringElement(MORPH_RECT,Size(3,3),Point(-1,-1));
dilate(src,dst,ele,Point(-1,-1));

MORPH_RECT:滑动块为矩形
MORPH_CROSS:滑动块为十字型
MORPH_ELLIPSE:滑动块为椭圆形
Point(-1,-1):使用默认的锚点

腐蚀

腐蚀操作:当前像素值等于该小块覆盖下的图像区域的最小像素值。
从而当背景色为白色,字体为黑色时,执行一次腐蚀操作,黑色字体将变粗。
相关api的使用:

Mat ele = getStructuringElement(MORPH_RECT,Size(3,3),Point(-1,-1));
erode(src,dst,ele);

附加

为了调试参数方便,使用createTrackbar()函数来将要变化的参数值变成可拖动的进度条,方便测试最合适的参数。
具体的应用:

#include <ros/ros.h>
#include "opencv2/opencv.hpp"using namespace std;
using namespace cv;int eroding_x = 1;
int eroding_y = 1;
int dilate_x = 1;
int dilate_y = 1;
Mat src;void Erod(int,void*);
void Dila(int,void*);int main(int argc, char *argv[])
{src = Mat::ones(Size(400,400),CV_32F);putText(src,"test",Point(100,100),3,2,Scalar(0,0,0),3);line(src,Point(10,10),Point(10,300),Scalar(0,0,0),3,8);line(src,Point(10,10),Point(300,10),Scalar(0,0,0),3,8);imshow("src",src);namedWindow("Dilate window",CV_WINDOW_AUTOSIZE);namedWindow("Eroding window",CV_WINDOW_AUTOSIZE);createTrackbar("dilate x size","Dilate window",&dilate_x,17,Dila);createTrackbar("dilate y size","Dilate window",&dilate_y,17,Dila);createTrackbar("eroding x size","Eroding window",&eroding_x,17,Erod);createTrackbar("eroding y size","Eroding window",&eroding_y,17,Erod);waitKey(0);return 0;
}void Dila(int,void*)
{if(dilate_x > 0 && dilate_y > 0){Mat ele = getStructuringElement(MORPH_CROSS,Size(dilate_x,dilate_y),Point(-1,-1));Mat temp;dilate(src,temp,ele,Point(-1,-1));imshow("dilate",temp);}else{cout << "the dilate_x  and dilate_y don't equals 0" << endl;}
}void Erod(int,void*)
{if(eroding_x > 0 && eroding_y > 0){Mat ele = getStructuringElement(MORPH_RECT,Size(eroding_x,eroding_y),Point(-1,-1));Mat temp;erode(src,temp,ele);imshow("erode",temp);}else{cout << "the eroding_x and eroding_y don't equals 0" << endl;}
}

其中:

createTrackbar(拖动条的名字,所在弹出框的名字,&改变的变量,拖动条的最大值,回调的函数
);

腐蚀和膨胀(erode and dilate)相关推荐

  1. OpenCV-Python教程:形态学变换~腐蚀和膨胀(erode,dilate)

    原文链接:http://www.juzicode.com/opencv-python-erode-dilate 返回Opencv-Python教程 形态学变换是基于图像形状的变换过程,通常用来处理二值 ...

  2. 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐蚀和膨胀操作

    图像形态学中两种最基本的操作就是对图形的腐蚀和膨胀,可以说,形态学中的中高级操作都是建立在这两种操作之上.通过这两种基本的运算可以去除图像中的噪声,分割出独立的区域或者将两个区域连接在一起. 关于图像 ...

  3. OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.引言 关于图像的腐蚀和膨胀,网上介绍的资料非常多,老猿也看了很多,总体来说主要偏向于就 ...

  4. OpenCV入门系列 —— cv::erode、cv::dilate 图像腐蚀和膨胀

    OpenCV入门系列 -- cv::erode.cv::dilate 图像腐蚀和膨胀 前言 程序说明 输出结果 代码示例 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用 ...

  5. OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()

    OpenCV学习笔记(七):形态学(morpholgy):腐蚀/膨胀:enrode(),dilate() 数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上 ...

  6. 《OpenCV3编程入门》学习笔记6 图像处理(三)形态学滤波(1):腐蚀与膨胀

    第6章 图像处理 6.3 形态学滤波(1):腐蚀与膨胀 6.3.1 形态学概述 1.数学形态学(Mathematical morphology):建立在格论和拓扑学基础上的图像分析学科,是数学形态学图 ...

  7. OpenCV 【十八】图像平滑处理/腐蚀与膨胀(Eroding and Dilating)/开闭运算,形态梯度,顶帽,黑帽运算

    图像滤波总结(面试经验总结)https://blog.csdn.net/Darlingqiang/article/details/79507468 目录 part one 图像平滑处理 1原理 2代码 ...

  8. 形态学滤波:腐蚀与膨胀(浅谈)

    形态学滤波:腐蚀与膨胀(浅谈) 一 关于二值化.膨胀.腐蚀以及拟合椭圆中心的代码如下** 二 关于腐蚀和膨胀,在此做一些浅显的总结. 三 对于上述代码中所生成的图片,进行一些说明. 四 接下来谈谈自己 ...

  9. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

最新文章

  1. php链表笔记:单链表反转
  2. sonar jacoco 覆盖率为0_Jacoco统计代码覆盖率
  3. Windows Server 2008常用优化设置
  4. python 提示错误AttributeError: type object 'str' has no attribute '_name_'
  5. 44行代码AC_卡片换位(DFS变形题 视频讲解 )
  6. 2021年高考成绩查询陕西文科,2021年陕西高考文科二本分数线预测
  7. 推荐一个非常好的行为验证码开源项目!
  8. python深入和扩展_加速方案 — Python扩展模块
  9. 【J2SE】java实现简单照片查看器
  10. go语言web编程,初学点滴记录1
  11. eclipse报错: Unhandled event loop exception No more handles
  12. 深入浅出 CAS,很多想进阿里的倒在了这个知识点
  13. VBS中Sub与Function的区别[资料]
  14. 德歌:阿里云RDS PG最佳实践
  15. Word 模板渲染引擎-Poi-tl
  16. PC版微信如何输入换行符
  17. java简单实现在线资源多线程下载,断点续存,限制最大正在下载数
  18. win10锁定计算机后黑屏,win10电脑突然黑屏无法唤醒怎么办?老司机告诉你解决方法...
  19. vue-cli热更新 失效
  20. 基于python的国内外研究现状_国内外研究现状评述

热门文章

  1. 专题:生物医疗大数据
  2. 作者:熊森林(1988-),男,中国科学院国家空间科学中心助理研究员
  3. 【操作系统】连续内存分配策略
  4. 【软件工程】抽象泄漏
  5. 【JVM】通过javap命令分析Java汇编指令
  6. contains()+replaceFirst()进行substring计数(洛谷P3741题题解,Java语言描述)
  7. 比特币的缺陷以及改进
  8. [转] Android系统如何实现UI的自适应
  9. 一个使用Logging Application Block的小问题[xgluxv]
  10. 直播PK短视频?直播+短视频才是王道