如何对二值图像进行膨胀和腐蚀膨胀处理

 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
膨胀与腐蚀,radon,hough变换
下载积分:600
内容提示:
文档格式:PPT|
浏览次数:26|
上传日期: 06:26:41|
文档星级:
该用户还上传了这些文档
下载文档:膨胀与腐蚀,radon,hough变换.PPT
官方公共微信VC膨胀和腐蚀腐蚀和膨胀,腐蚀膨胀,腐蚀与膨胀,膨胀和腐蚀,膨胀与腐蚀,vc吧
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
VC膨胀和腐蚀
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口形态学图像处理_百度知道
形态学图像处理
程实现二值图像的几种常用的形态学处理方法、膨胀,包括:腐蚀、开运算和闭运算
如果是JAVA编写的会更好。
提问者采纳
%把加椒盐噪声后的灰度图像二值化figure.tifI2=imnoise(I1,它在亮的图像区域内是暗点。调用格式为;close&#39。BW2= erode(BW1:除去孤立的像素(被0包围的1)‘close’。输入图像BW1的类型为double或unit8,NHOOD)3用MATLAB编程实现图像去噪3,SE.tif图像加入椒盐噪声,n)其中。2。下面是二值形态学消除图像噪声的一个实例,operation)② BW2=bwmorph(BW1,…。输入图像BW1的类型为double或unit8.tif&#39:‘clean’,SE,以达到消除图像噪声的目的:I1=imread('对于格式②。BW2=dilate(BW1:用结构元素计算图像膨胀‘erode’;open&#39,输出图像BW2的类型为unit8。首先将tire,这种噪声前面已经介绍过.1 二值形态学消除图像噪声用二值形态学方法对图像中的噪声进行滤除的基本思想[4]是,&#39,NHOOD)5、imopen函数该函数功能是对灰度图像执行形态学开运算,…,SE)IM2=imclose(IM,n)表示执行膨胀操作n次,'
%读灰度图),SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行腐蚀操作:BW2=dilate(BW1:IM2=imclose(IM:BW2=dilate(BW1,…,由于这里的结构元素矩阵比噪声的尺寸要大:计算二值闭合‘dilate’,bwmorph函数可对二值图像BW1采用指定的形态学运算n次,SE,最后对前一步得到的图像进行闭合操作;),n)其中,imshow(I4)
%显示开运算后的图像I5=bwmorph(I4;
%对二值噪声图像进行二值形态学开运算figure,SE)BW2= erode(BW1、bwmorph函数该函数的功能是能实现二值图像形态学运算,n)表示执行腐蚀操作n次,将轮胎上的噪声点去掉了,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作,imshow(I2)
%显示加椒盐噪声后的灰度图像I3=im2bw(I1),n)其中;salt & pepper&#39,imshow(I3)
%显示二值化后的图像I4=bwmorph(I3、imclose函数该函数功能是对灰度图像执行形态学闭运算:BW2= erode(BW1,SE)IM2=imopen(IM,…,SE)BW2=dilate(BW1,'tire:BW2= erode(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行膨胀操作:对于格式①;
%在图像上加入椒盐噪声figure,bwmorph函数可对二值图像BW1采用指定的形态学运算,因而开启的结果是将背景上的噪声点去除了;):使用具有一定形态的结构元素去度量和提取图像中的对应形状。operation为下列字符串之一,再对有噪声图像进行二值化操作。调用格式为、dilate函数该函数能够实现二值图像的膨胀操作,有以下形式、erode 函数该函数能够实现二值图像的腐蚀操作,而在暗的图像区域内是亮点,SE。下面是算法实现的程序代码,即使用同样的结构元素先对图像进行腐蚀操作后进行膨胀操作。它的格式如下:用结构元素计算图像侵蚀4,有以下形式:① BW2=bwmorph(BW1:IM2=imopen(IM,输出图像BW2的类型为unit81。3;
%对上述图像进行形态学闭运算figure,再对有噪声图像进行开启操作;)
提问者评价
他们的工作奠定了这门学科的理论基础, 如击中/击不中变换、开闭运算、布尔模型及纹理分析器的原型等。数学形态学的基本思想是用具有一定形态的结构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。
数学形态学的数学基础和所用语言是集合论,因此它具有完备的数学基础,这为形态学用于图像分析和处理、形态滤波器的特性分析和系统设计奠定...
其他类似问题
图像处理的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2499人阅读
&& & &本文主要对二值图像膨胀的定义、原理以及VC下实现方法进行总结,并通过图像处理结果对图像膨胀操作的功能以及使用场合进行讨论。
&& & &参考冈萨雷斯的经典教材,对Z空间中的集合A和B,使用B对A进行膨胀,可定义为:
&& & &可以理解膨胀过程为:首先得到膨胀结构元素相对于自身原点(按照本人的理解,对于对称的结构元素,原点为其对称中心,对于非对称的结构元素,原点由工程师根据相应的应用制定)的映射,然后根据此映射的z平移,如果结构元素的映射与集合A交集非空,则z属于膨胀后的集合。
&& & &按照本人的理解,这个定义的意思就是从图像的第一个像素点开始依行遍历全部像素,在每个像素点上,移动结构元素B的映射的中心与其重合,然后判断此位置的结构元素是否有对A集合的覆盖,如果有,则保留这个点,否则对此点取反(按照如下的符号约定,即将改点灰度值设置为0)。
2、灰度值及逻辑约定
&& & &1)二值图像中,所有黑色像素的集合是图像完整的形态学描述
&& & &2)对于二值化后的图像:黑色表示灰度为0,白色表示灰度为255
&& & &3)对于形态学结构元素:黑色代表1,白色表示0
&& & &4)值为1的点组成完整的形态学结构元素
3、VC实现灰度图的二值膨胀
&& & &首先贴上代码,然后再进行说明。作者实现的代码如下:
/*************************************************************************
* \函数名称:
DilationAlgorithm()
* \输入参数:
二值图像数据
* pErosionMat:
输出的腐蚀图像数据
图形尺寸宽度
图形尺寸高度
* nWindows:
腐蚀操作结构元素尺寸,当nWindows=3时,如下:
* \返回值:
* \函数说明:
实现图像形态学算子-膨胀
************************************************************************/
void CDilationDlg::DilationAlgorithm(CvMat *pGrayMat, CvMat *pErosionMat, int width, int height, int nWindows)
int nSize = (int)(nWindows/2);
for(int i=0; i& i++)
for(int j=0; j& j++)
int nFlag = 1;
//用于控制循环跳出
for(int m=i-nS m&=i+nS m++)
for(int n=j-nS n&=j+nS n++)
if((m&=0)&&(m&height)&&(n&=0)&&(n&width))
double nData = cvmGet(pGrayMat, m, n);
if((nData == 0))
//如果覆盖区域有一个黑点,则设置保留当前结构元素中心点
if(nFlag==0)
if(nFlag==0)
double nData = 0;
cvmSet(pErosionMat, i, j, nData);
double nData = 255;
cvmSet(pErosionMat, i, j, nData);
&& & &对程序实现的主要说明如下:
&& & &1)选择腐蚀结构元素:本文对结构元素的选取不做过多的讨论,采用最简单常见的正方形结构元素,其全部像素均为1。这样一个结构元素相对于其原点的映射还是自身,因此在代码实现中没有进行相关的反射操作。所实现的函数DilationAlgorithm中最后一个参数用于控制结构元素尺寸。
&& & &2)边界处理:由于结构元素有一定的尺寸,因此当结构元素中心移动到图像边缘的若干个像素时,可能有一部分的结构元素超出了图像边界,这是本程序的处理方法是:将图像进行虚拟扩充,扩充的元素灰度值全部填255(根据上文定义,即为无意义的白色像素填充).
&& & &3)原始图像选择:所选择图片是白底上面有几个离散的黑点。这样可容易看出经过膨胀后黑点相对大小的变化。
4、膨胀结果分析
&& & & 顾名思义,腐蚀操作可以使得图像减小“一圈”,同时腐蚀操作能够将图像中较小的细节消除掉(效果与结构元素形状和尺寸有关)。以下是程序运行的结果。(为了能使得图像看起来清晰一点,对每幅图的前景和背景进行了反色处理)
图1 待处理图像反色结果
图2 膨胀结果反色(结构元素尺寸为3)
图3 膨胀结果反色(结构元素尺寸为11)
&& & & 对比图2与图1可以看出,经过尺寸为3的结构元素膨胀后,4个孤立的点尺寸都变大了,这说明了膨胀操作能够根据结构元素对图像中的有效像素进行扩充;
&& & &另外,对比图2与图3可以看到,当结构元素尺寸增大到11时,图中白色圆圈范围内的两个点集被膨胀为一个点,这说明了膨胀操作可以将小的裂缝桥接起来,根据这个功能我们能够对图像断裂进行恢复。
&& & &需要注意的是,当结构元素不是对称的时候,必须要对元素先进行自身映射,不然得到的结果是不合理的。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:173426次
积分:1669
积分:1669
排名:第10944名
原创:14篇
评论:157条
(3)(7)(6)(4)当前位置: >
> 形态学演算中腐蚀,膨胀,开运算和闭运算
形态学演算中腐蚀,膨胀,开运算和闭运算
lis2009 & at
形态学运算中腐蚀,膨胀,开运算和闭运算  以下是对形态学运算中腐蚀,膨胀,开运算和闭运算的概念和实现的搜集,一块学习了
  1. 腐蚀是一种消除边界点,使边界向内部收缩的过程。
  可以用来消除小且无意义的物体。
腐蚀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为1,结果图像的该像素为1。否则为0。
结果:使二值图像减小一圈
  2. 膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。
  可以用来填补物体中的空洞。
膨胀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为0,结果图像的该像素为0。否则为1
结果:使二值图像扩大一圈
  3. 先腐蚀后膨胀的过程称为开运算。
  用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
  4. 先膨胀后腐蚀的过程称为闭运算。
  用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
  二值形态学
数学形态学中二值图像的形态变换是一种针对集合的处理过程。其形态算子的实质是表达物体或形状的集合与结构元素间的相互作用,结构元素的形状就决定了这种运算所提取的信号的形状信息。形态学图像处理是在图像中移动一个结构元素,然后将结构元素与下面的二值图像进行交、并等集合运算。
基本的形态运算是腐蚀和膨胀。
在形态学中,结构元素是最重要最基本的概念。结构元素在形态变换中的作用相当于信号处理中的“滤波窗口”。用B(x)代表结构元素,对工作空间E中的每一点x,腐蚀和膨胀的定义为:
用B(x)对E进行腐蚀的结果就是把结构元素B平移后使B包含于E的所有点构成的集合。用B(x)对E进行膨胀的结果就是把结构元素B平移后使B与E的交集非空的点构成的集合。先腐蚀后膨胀的过程称为开运算。它具有消除细小物体,在纤细处分离物体和平滑较大物体边界的作用。先膨胀后腐蚀的过程称为闭运算。它具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
可见,二值形态膨胀与腐蚀可转化为集合的逻辑运算,算法简单,适于并行处理,且易于硬件实现,适于对二值图像进行图像分割、细化、抽取骨架、边缘提取、形状分析。但是,在不同的应用场合,结构元素的选择及其相应的处理算法是不一样的,对不同的目标图像需设计不同的结构元素和不同的处理算法。结构元素的大小、形状选择合适与否,将直接影响图像的形态运算结果。因此,很多学者结合自己的应用实际,提出了一系列的改进算法。如梁勇提出的用多方位形态学结构元素进行边缘检测算法既具有较好的边缘定位能力,又具有很好的噪声平滑能力。许超提出的以最短线段结构元素构造准圆结构元素或序列结构元素生成准圆结构元素相结合的设计方法,用于骨架的提取,可大大减少形态运算的计算量,并可同时满足尺度、平移及旋转相容性,适于对形状进行分析和描述。
  以下摘自
  数学形态学在图像处理中的主要应用包括:边缘检测、图像分割、形态骨架提取、噪声滤除。
选取结构元素的方法:多结构元素、遗传算法。
  图像形态学主要有四个操作,即膨胀、腐蚀、开运算和闭运算
  (1)在讨论四个操作之前,我们先看看核结构
  view plaincopy to clipboardprint
IplConvKernel* cvCreateStructingElementEx( int
anchor_x, int
anchor_y, int
shape, int*
values = null );
IplConvKernel* cvCreateStructingElementEx( int cols, int rows, int anchor_x, int anchor_y, int shape, int* values = null );
  view plaincopy to clipboardprint
cvReleaseStructingElement( IplConvKernel** element );
void cvReleaseStructingElement( IplConvKernel** element );
  (2)膨胀:将一些图像(I)与核(T)进行卷积
  核可以是任意形状,多为正方形或者圆形,核可以视为模板或掩码,膨胀是求局部最大值的操作
  膨胀常用于填补凹洞
  view plaincopy to clipboardprint
cvDilate( IplImage* src, IplImage* dst, IplConvKernel* B = NULL, int
iterations = 1 );
void cvDilate( IplImage* src, IplImage* dst, IplConvKernel* B = NULL, int iterations = 1 );
  (3)腐蚀:腐蚀操作即求核区域像素的最小值。
  腐蚀能够消除细的凸起
  view plaincopy to clipboardprint
cvErode( IplImage* src, IplImage* dst, IplConvKernel* B = NULL, //B即核,下同
iterations = 1 //如名,迭代次数,下同
void cvErode( IplImage* src, IplImage* dst, IplConvKernel* B = NULL, //B即核,下同 int iterations = 1 //如名,迭代次数,下同 );
  (4)开运算:先腐蚀后膨胀,消除高于其邻近点的孤立点
  (5)闭运算: 先膨胀后腐蚀,消除低于其邻近点的孤立点
  (6)opencv提供了更通用的形态学操作
  view plaincopy to clipboardprint
cvMorphologyEx( const
CvArr* src, CvArr* dst, CvArr* temp, //缓存数组,大小影后源图像大小相同
IplConvKernel* element, int
operation, //包括CV_MOP_OPEN,CV_MOP_CLOSE,CV_MOP_GRADIENT,CV_MOP_TOPHAT,CV_MOP_BLACKHAT
iterations = 1 //此处的迭代可能会让人误解,以为对闭操作(或其他)的迭代是膨胀-腐蚀-膨胀-腐蚀,实际上是膨胀-膨胀-腐蚀-腐蚀
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-

我要回帖

更多关于 matlab二值图像 的文章

 

随机推荐