博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv2函数学习之erode、dilate:图像腐蚀和膨胀
阅读量:5132 次
发布时间:2019-06-13

本文共 1303 字,大约阅读时间需要 4 分钟。

图像腐蚀和图像膨胀是图像中两种最基本形态学操作。

void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT,const Scalar& borderValue=morphologyDefaultBorderValue() );
void dilate( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT,const Scalar& borderValue=morphologyDefaultBorderValue() );

可见,腐蚀和膨胀的参数完全一样。

参数:

src:原图像。

dst:目标图像。

element:腐蚀操作的内核。 如果不指定,默认为一个简单的 3x3 矩阵。否则,我们就要明确指定它的形状,可以使用函数getStructuringElement().

anchor:默认为Point(-1,-1),内核中心点。省略时为默认值。

iterations:腐蚀次数。省略时为默认值1。

borderType:推断边缘类型,具体参见borderInterpolate函数。默认为BORDER_DEFAULT,省略时为默认值。

borderValue:边缘值,具体可参见createMorphoogyFilter函数。可省略。

 

通常情况下,我们可以使用函数getStructuringElement()来制作操作内核。

Mat getStructuringElement(int shape, Size esize, Point anchor=Point(-1,-1));

参数:

shape:内核形状,主要有MORPH_RECT,MORPH_CROSSMORPH_ELLIPSE,分别为矩形、椭圆形和交叉形,对应的值分别为0,1,2

  

enum { MORPH_RECT=0, MORPH_CROSS=1, MORPH_ELLIPSE=2 };

 

 

esize:内核大小。

anchor:内核锚点,默认为内核中心点。

例:

Mat element = getStructuringElement( 0,Size( 2*i + 1, 2*i+1 ), Point(i, i ) );  /// 腐蚀操作  erode( src, dst, element );
Mat element = getStructuringElement( 0,Size( 2*i + 1, 2*i+1 ), Point(i, i ) );  /// 膨胀操作  dilate( src, dst, element );

 

——

转载于:https://www.cnblogs.com/denny402/p/3848390.html

你可能感兴趣的文章
小程序踩坑(三)-上拉加载和下拉刷新篇
查看>>
mysql backup
查看>>
《Pro Ogre 3D Programming》读书笔记 之 第十章 布告板与粒子 第二部分 (转)
查看>>
文件字符输入输出流
查看>>
sed——linux下对文本当控制操作(替换,追加)
查看>>
编程之美 set 7 求数组中的最长递增子序列
查看>>
vbscript获取本机的ip地址和mac地址
查看>>
int[]里数的个数怎么由输入决定?-----动态数组。
查看>>
什么是bypass(转载)
查看>>
Css-calc()翻车归纳
查看>>
Filter:过滤器
查看>>
Spring之WEB模块
查看>>
C#三种判断字符是否为汉字的方法
查看>>
发现Mac OS X的llvm-gcc也是支持intrin函数的
查看>>
2015年创业中遇到的技术问题:121-130
查看>>
微信小程序学习笔记-3-问题
查看>>
js 将json字符串转换为json对象的方法解析
查看>>
brek和continue
查看>>
AtomicInteger 、Synchronized 和 volatile 之间的区别?
查看>>
file_get_contents()
查看>>