膨胀与腐蚀_腐蚀与膨胀 - CSDN
精华内容
参与话题
  • 一、腐蚀膨胀

    千次阅读 2018-11-01 15:11:21
    一、腐蚀膨胀 1、腐蚀膨胀的主要功能 (1)消除噪声 (2)分割出独立的图像元素,在图像中连接相邻的元素 (3)寻找图像中的极大值或者极小值区域 (4)求出图像的梯度 2、膨胀(dilate) 膨胀就是求局部...

    一、腐蚀和膨胀

    1、腐蚀和膨胀的主要功能

    (1)消除噪声

    (2)分割出独立的图像元素,在图像中连接相邻的元素

    (3)寻找图像中的极大值或者极小值区域

    (4)求出图像的梯度

    2、膨胀(dilate)

    膨胀就是求局部最大值的操作。从数学角度来说,就是将图像与核进行卷积,计算核B覆盖区域的像素点的最大值,并把这个最大值赋值给参考点指定的元素。这样就会使图像中的高亮区域逐渐增长。

    3、腐蚀(erode)

    腐蚀和膨胀是相反的操作,腐蚀是求局部最小值的操作。腐蚀操作会使图像中的高亮区逐渐减小。

    4、膨胀和腐蚀示例

    复制代码

     1 Mat srcImage = imread("E:\\CodeResource\\opencv\\car_pic\\car1.jpg",0);
     2 
     3 Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));
     4 
     5 Mat dilateImage;
     6 dilate(srcImage, dilateImage, element);
     7 
     8 Mat erodeImage;
     9 erode(srcImage, erodeImage, element);    
    10 
    11 imshow("srcImage", srcImage);
    12 imshow("dilateImage", dilateImage);
    13 imshow("erodeImage", erodeImage);
    14 
    15 waitKey(0);

    复制代码

    5、效果图:

    二、开运算

    1、概述

    开运算是先腐蚀后膨胀。主要用于消除小物体,在纤细点处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积,同时抑制比结构元小的亮细节。

    2、示例

    复制代码

     1 Mat srcImage = imread("E:\\CodeResource\\opencv\\car_pic\\test1.png",0);
     2 
     3 Mat element = getStructuringElement(MORPH_RECT, Size(5,5));
     4 
     5 Mat openImage;
     6 morphologyEx(srcImage, openImage, MORPH_OPEN, element);
     7 
     8 imshow("srcImage", srcImage);
     9 imshow("openImage", openImage);
    10 
    11 waitKey(0);

    复制代码

    3、效果图

    三、闭运算

     1、概述

    闭运算是先膨胀后腐蚀。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积,同时抑制比结构元小的暗细节。

    2、示例

    复制代码

     1 Mat srcImage = imread("E:\\CodeResource\\opencv\\car_pic\\test2.png",0);
     2 
     3 Mat element = getStructuringElement(MORPH_RECT, Size(5,5));
     4 
     5 Mat closeImage;
     6 morphologyEx(srcImage, closeImage, MORPH_CLOSE, element);
     7 
     8 imshow("srcImage", srcImage);
     9 imshow("closeImage", closeImage);
    10 
    11 waitKey(0);

    复制代码

    3、效果图

    四、形态学梯度

    1、概述

    就是将膨胀土和腐蚀图相减。对二值化图像进行这一操作可以将边缘突出来,可以使用形态学梯度来保留物体的边缘轮廓

    2、示例

    复制代码

     1 Mat srcImage = imread("E:\\CodeResource\\opencv\\car_pic\\test2.png",0);
     2 
     3 Mat element = getStructuringElement(MORPH_RECT, Size(2,2));
     4 
     5 Mat gradientImage;
     6 morphologyEx(srcImage, gradientImage, MORPH_GRADIENT, element);
     7 
     8 imshow("srcImage", srcImage);
     9 imshow("gradientImage", gradientImage);
    10 
    11 waitKey(0);

    复制代码

    3、效果图

    五、顶帽变换和黑帽变换

    1、概述

    顶帽变换就是用源图像减去开运算图像。因为开运算带来的结果是放大了裂缝或者局部低亮度的区域。因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围区域更明亮的区域。顶帽一般用于校正不均匀光照的影响(补充:均匀光照在从背景中提取目标的处理中扮演核心的角色)。

    黑帽变换就是用闭运算减去源图像。黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域。黑帽运算一般用来分离比邻近点暗一些的斑块。

    2、示例

    复制代码

     1 Mat srcImage = imread("E:\\CodeResource\\opencv\\car_pic\\test2.png",0);
     2 
     3 Mat element = getStructuringElement(MORPH_RECT, Size(15,15));
     4 
     5 Mat tophatImage;
     6 morphologyEx(srcImage, tophatImage, MORPH_TOPHAT, element);
     7 
     8 Mat blackhatImage;
     9 morphologyEx(srcImage, blackhatImage, MORPH_BLACKHAT, element);
    10 
    11 imshow("srcImage", srcImage);
    12 imshow("tophatImage", tophatImage);
    13 imshow("blackhatImage", blackhatImage);
    14 
    15 waitKey(0);

    复制代码

    3、效果图

    展开全文
  • 前言: 数学形态学提供了一组有用...常用的形态学处理方法包括:腐蚀膨胀、开运算、闭运算、顶帽运算、底帽运算,其中膨胀与腐蚀是图像处理中最常用的形态学操作手段,其他方法是两者相互组合而产生的。 一、膨...

    前言:

          数学形态学提供了一组有用的方法,能够用来调整分割区域的形状以获得比较理想的结果,它最初是从数学中的集合论发展而来并用于处理二值图的,虽然运算很简单,但是往往可以产生很好的效果,后来这些方法推广到普通的灰度级图像处理中。常用的形态学处理方法包括:腐蚀、膨胀、开运算、闭运算、顶帽运算、底帽运算,其中膨胀与腐蚀是图像处理中最常用的形态学操作手段,其他方法是两者相互组合而产生的。 

    一、膨胀

           跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。我们回忆一下中值平滑操作——取每一个位置的矩形领域内值的中值作为该位置的输出灰度值,图像的膨胀操作与中值平滑操作类似,它是取每一个位置的矩形领域内值的最大值作为该位置的输出灰度值。不同的是,这里的领域不再单纯是矩形结构的,也可以是椭圆形结构的、十字交叉形结构的等,其中红色是参考点,也称为锚点(anchor point),如下所示:

                            

          因此取每个位置领域内最大值,所以膨胀后输出图像的总体亮度的平均值比起原图会有所升高,图像中比较亮的区域的面积会变大,而较暗物体的尺寸会减小甚至消失。

    1.1  结构元形状构造函数

                    getStructuringElement( int shape, Size ksize, Point anchor )


    其参数解释如下:

        shape:1)MORPH_RECT 表示产生矩形的结构元

                    2)MORPH_ELLIPSEM 表示产生椭圆形的结构元

                    3)MORPH_CROSS 表示产生十字交叉形的结构元

        ksize:表示结构元的尺寸,即(宽,高),必须是奇数

        anchor:表示结构元的锚点,即参考点。默认值Point(-1, -1)代表中心像素为锚点

    1.2 膨胀操作API

        OpenCV中提供给了dilate()函数来完成膨胀操作,其函数声明如下:


    其参数解释如下:

        src:表示输入矩阵

        element:表示结构元,即 函数getStructuringElement( )的返回值

        anchor:结构元的锚点,即参考点

        iterations:膨胀操作的次数,默认为一次

        borderType:边界扩充类型

        borderValue:边界扩充值


    1.3 创建TrackBar

          opencv提供了一种称为轨迹条或滑动条(Trackbar)的控件工具,能够直观的改变出现处理时的参数,实时看到更改这些参数时对于图像处理结果的影响。createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便。首先大家要记住,它往往会和一个回调函数配合起来使用。先看下他的函数声明:

                     int createTrackbar(conststring& trackbarname, conststring& winname, int* value, int count, TrackbarCallback onChange=0,void* userdata=0); 


        其中参数解释如下:

            trackbarname,表示轨迹条的名字,用来代表我们创建的轨迹条。
            winname,填窗口的名字,表示这个轨迹条会依附到哪个窗口上,即对应namedWindow()创建窗口时填的某一个窗口名。
            value,一个指向整型的指针,表示滑块的位置。并且在创建时,滑块的初始位置就是该变量当前的值。
            count,表示滑块可以达到的最大位置的值。滑块最小的位置的值始终为0。
            onChange,首先注意他有默认值0。这是一个指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须为void XXXX(int,void*);其中第一个参数是轨迹条的位置,第二个参数是用户数据(看下面的参数)。如果回调是NULL指针,表示没有回调函数的调用,仅第三个参数value有变化。
            userdata,他也有默认值0。这个参数是用户传给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数value实参是全局变量的话,完全可以不去管这个userdata参数。

            这个createTrackbar函数,为我们创建一个具有特定名称和范围的轨迹条(Trackbar,或者说是滑块范围控制工具),指定一个和轨迹条位置同步的变量。而且要指定回调函数onChange(第五个参数),在轨迹条位置改变的时候来调用这个回调函数。并且我们知道,创建的轨迹条显示在指定的winname(第二个参数)所代表的窗口上。


    1.4 代码演示

    接下来编写演示代码:

    #include <opencv2/opencv.hpp> 
    #include <iostream> 
    using namespace cv;
    
    Mat src, dst;                   // 全局变量
    int element_size = 3;      //全局变量
    int max_size = 21;           // 全局变量
    
    void CallBack_func(int, void*);
    int main( ) 
    {
    	src = imread("test7.png");
    	if (src.empty()) 
    	{
    		printf("could not load the  image...\n");
    		return -1;
    	}
    	namedWindow("原图:", CV_WINDOW_AUTOSIZE);
    	imshow("原图:", src);
    	namedWindow("膨胀操作后:", CV_WINDOW_AUTOSIZE);
    	createTrackbar("结构元尺寸 :", "膨胀操作后:", &element_size, max_size, CallBack_func);        
    	CallBack_func(element_size, 0);
    
    	waitKey(0);
    	return 0;
    }
    
    
    void CallBack_func(int, void*) 
    {
    	int s = element_size * 2 + 1;
    	Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));      //创建结构元
    	dilate(src, dst, structureElement, Point(-1, -1), 1);               //调用膨胀API
    	imshow("膨胀操作后:", dst);
    }

    运行程序,如下:



    二、腐蚀

           腐蚀操作与膨胀操作类似,只是它取结构元所指定的领域内值的最小值作为该位置的输出灰度值。因为取每个位置领域内最小值,所以腐蚀后输出图像的总体亮度的平均值比起原图会有所降低,图像中比较亮的区域的面积会变小甚至消失,而较暗物体的尺寸会扩大。

          OpenCV中提供给了erode()函数来完成膨胀操作,其函数声明如下:


    其中参数解释如下:  

        src:表示输入矩阵

        dst:表示输出矩阵

        element:表示结构元,即 函数getStructuringElement( )的返回值

        anchor:结构元的锚点,即参考点

        iterations:腐蚀操作的次数,默认为一次

        borderType:边界扩充类型

        borderValue:边界扩充值


    接下来我们编写演示代码:

    #include <opencv2/opencv.hpp> 
    #include <iostream> 
    using namespace cv;
    
    Mat src, dst;                   // 全局变量
    int element_size = 3;      //全局变量
    int max_size = 21;           // 全局变量
    
    void CallBack_func(int, void*);
    int main( ) 
    {
    	src = imread("test7.png");
    	if (src.empty()) 
    	{
    		printf("could not load the  image...\n");
    		return -1;
    	}
    	namedWindow("原图:", CV_WINDOW_AUTOSIZE);
    	imshow("原图:", src);
    	namedWindow("膨胀操作后:", CV_WINDOW_AUTOSIZE);
    	createTrackbar("结构元尺寸 :", "膨胀操作后:", &element_size, max_size, CallBack_func);        
    	CallBack_func(element_size, 0);
    
    	waitKey(0);
    	return 0;
    }
    
    
    void CallBack_func(int, void*) 
    {
    	int s = element_size * 2 + 1;
    	Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));      //创建结构元
    	erode(src, dst, structureElement);               //调用腐蚀API
    	imshow("膨胀操作后:", dst);
    }
    
    
    
    
    

    运行程序,如下:





    展开全文
  • 膨胀与腐蚀

    2019-09-10 17:42:32
    膨胀与腐蚀是图像处理中最常用的形态学操作手段 跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是...

    形态学操作(morphology operators)-膨胀

    图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学
    形态学有四个基本操作:腐蚀、膨胀、开、闭
    膨胀与腐蚀是图像处理中最常用的形态学操作手段

    跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状

    在这里插入图片描述

    形态学操作-腐蚀

    腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值替换锚点重叠下图像的像素值
    在这里插入图片描述
    相关API
    getStructuringElement(int shape, Size ksize, Point anchor)//ksize一定要是基数

    • 形状 (MORPH_RECT \MORPH_CROSS \MORPH_ELLIPSE)
    • 大小
    • 锚点 默认是Point(-1, -1)意思就是中心像素

    动态调整结构元素大小
    TrackBar – createTrackbar(const String & trackbarname, const String winName, int* value, int count, Trackbarcallback func, void* userdata=0)
    其中最中要的是 callback 函数功能。如果设置为NULL就是说只有值update,但是不会调用callback的函数。

    dilate(src, dst, kernel)

    Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));
    dilate(src, dst, structureElement);
    

    在这里插入图片描述

    erode(src, dst, kernel)

    Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));
    erode(src, dst, structureElement);
    

    在这里插入图片描述

    展开全文
  • 数字图像处理---通俗理解腐蚀与膨胀

    千次阅读 多人点赞 2018-11-08 21:35:20
    0.腐蚀与膨胀有什么卵用? 腐蚀与膨胀是数字形态学里的两个基本操作,一般用于二值图像(当然RGB图也可以用)。腐蚀的作用说白了就是让暗的区域变大,而膨胀的作用就是让亮的区域变大(可以想象成巴啦啦能量和古娜拉...

    0.腐蚀与膨胀有什么卵用?

    腐蚀与膨胀是数字形态学里的两个基本操作,一般用于二值图像(当然RGB图也可以用)。腐蚀的作用说白了就是让暗的区域变大,而膨胀的作用就是让亮的区域变大(可以想象成巴啦啦能量和古娜拉黑暗之神在神仙打架。。巴啦啦能量赢了就是膨胀,古娜拉黑暗之神赢了就是腐蚀。。。)
    在这里插入图片描述

    最典型的一个应用场景就是在你二值化后,你的目标和背景抠的不是很干净的时候可以试试两个操作,有时候效果出奇的好。就比如我要把一张验证码的图二值化后的结果更精确的话,就可以试试腐蚀与膨胀(第二幅图是膨胀+腐蚀之后的效果,可以看得出来已经把干扰点和干扰线去掉了)。
    在这里插入图片描述
    在这里插入图片描述

    1.腐蚀

    腐蚀的原料有:原图、核(腐蚀的灵魂)、结果图(这货是从原图深拷贝出来的)。下面举栗子来说明腐蚀的工作流程。
    假设现在我们想对这样一幅单通道图做腐蚀操作(被IG关爱过视力的童鞋肯定能看出图里画的是个1)
    在这里插入图片描述
    然后我们就先要把原图拷贝一份出来当结果图,现在的结果图和原图是一毛一样的。
    在这里插入图片描述
    有了原图和结果图之后,我们就需要灵魂了(设计核)。核一般有方框形的,X形的,菱形的,等等等等(当然也可以自己DIY,比如我就DIY了个十字架形的)。并且腐蚀的效果和你设计的核有很大关系,什么样的核适合什么样的图这个全靠自己的脑洞和经验。反正我喜欢多试试几种核,看看哪个核效果好就用哪个。我这里DIY的核是3行3列的矩阵,样子如下:
    在这里插入图片描述
    现在有了灵魂之后,我们就要注入灵魂了。怎么注入呢?非常简单,把我们的核扔到原图和结果图的左上角(PS:我这里没做padding,因为我懒)。
    在这里插入图片描述

    在这里插入图片描述
    扔上去之后,我们就要用到核里面的值了。我们核里面有0和1(非零值),0代表我不care,1(非零值)代表你成功的而引起了我的注意。当我们的核盖在原图上之后就表明我只关心我核是1(非零值)在原图上对应的像素,也就是只关心我红框框里中间呈十字架形的5个255,其他的4个像素我并不关心。锁定完目标后,我们只要看我这5个像素中有没有0,如果有我们就把结果图中红框中心的像素值改成0,否则我就什么都不干。我们看一哈,5个255,并没有0所以什么都不干。

    我们费了半天功夫发现什么都没干,你说气不气,所以捏,我们就把原图和结果图上的红框往右边移一步(其实不是气不气的问题啦,是腐蚀和膨胀是要遍历整个图,所以要迭代啦)。所以挪一步之后成了酱紫。
    在这里插入图片描述
    在这里插入图片描述
    新的地方,新的开始,所以我们要继续刚刚的套路,看看原图红框中十字架部分的5个像素有没有0,发现有0!。所以我们的结果图红框中心点的像素值就被改成0了。
    在这里插入图片描述
    然后继续刚刚的套路,往右挪,看关心的地方有没有0,右边挪不动了就往下挪。直到整个红框雨露均沾后,整个腐蚀算法就做完了。
    完事之后我们会发现结果图变成了酱紫。
    在这里插入图片描述
    嗯,很正常,因为腐蚀就是让黑的区域变大,所以1变胖了,而且原图的1中间有隔断,经过腐蚀之后隔断处也连了起来。

    2.膨胀

    其实理解了腐蚀之后,理解膨胀简直简单的而一批。腐蚀之所以叫腐蚀是因为他只看感兴趣区域里面有没有0,有0我就把结果赋成0,所以黑的区域能变大。而膨胀只是和腐蚀相反,它只看感兴趣区域里面有没有255,有255我就把结果赋成255,所以亮的区域能变大。
    假如原图(0可以看成是噪点)是酱紫
    在这里插入图片描述
    那结果图一开始也是酱紫
    在这里插入图片描述
    假设膨胀的灵魂也是十字架的核
    在这里插入图片描述
    那么膨胀第一步也是在原图和结果图上套个红框
    在这里插入图片描述
    在这里插入图片描述
    然后就看十字架区域有没有255,发现有我就把结果图上的对应位置的像素改成255(当然,这时的结果图对应像素本来就是255,所以相当于什么都没干)。原图和结果图上的红框都往右挪一步
    在这里插入图片描述
    在这里插入图片描述
    这个时候发现十字架区域有255,发现有我就把结果图上的对应位置的像素改成255(当然,这时的结果图对应像素本来就是255,所以相当于什么都没干)。原图和结果图上的红框都往右挪一步。
    在这里插入图片描述
    在这里插入图片描述
    这个时候十字架区域有255,所以把结果图对应的像素改成255,改完之后结果图是酱紫。
    在这里插入图片描述
    然后继续挪,挪到右下角,整个算法就停止了。膨胀做完之后,结果图是酱紫。
    在这里插入图片描述
    可以看得出来,原图的0我看成是噪点,经过膨胀之后噪点全部被擦除。

    3.结束语

    可以看得出来腐蚀和膨胀这两个算法流程非常简单,无非就是摩擦摩擦。。似魔鬼的步伐。。在图像上摩擦。。摩擦。。虽然算法简单,但如果核设计的好,使用恰当的话,能还是够得到比较满意的效果的。

    展开全文
  • 如何使用OpenCV提供的两种最基本的形态学操作,腐蚀与膨胀( Erosion 与 Dilation): erodedilate 原理 Note   以下内容来自于Bradski和Kaehler的大作: Learning OpenCV . 形态学操作 ...
  • 形态学操作:膨胀与腐蚀

    万次阅读 多人点赞 2019-12-09 10:03:31
    形态学操作其实就是改变物体的形状,比如腐蚀就是...按数学方面来说,膨胀或者腐蚀操作就是将图像(或图像的一部分区域,我们称之为A)核(我们称之为B)进行卷积。 核可以是任何的形状和大小,它拥有一个单独定...
  • 图像的腐蚀与膨胀

    万次阅读 2018-10-11 14:15:46
    图像腐蚀与膨胀 结构元素 设有两幅图象B,X。若X是被处理的对象,而B是用来处理X的,则称B为结构元素(structure element),又被形象地称做刷子。结构元素通常都是一些比较小的图象。 腐蚀 把结构元素B平...
  • 膨胀腐蚀

    千次阅读 2019-05-10 09:48:48
    %膨胀腐蚀 f=imread('aerial.tif'); subplot(2,2,1),imshow(f),title('原图像') se=strel('square',3);%结构算子 gd=imdilate(f,se);%膨胀 subplot(2,2,2),imshow(gd),title('膨胀后的图像') ge=imerode(f,se);%...
  • 膨胀与腐蚀算法

    万次阅读 2017-04-17 11:00:05
    膨胀与腐蚀算法 对图像处理有所了解的人都知道图像的形态学处理里最为基础的膨胀腐蚀算法。二值图像即只有黑白两种颜色组成的图像,一般的白色为内容,黑色为背景。其实简单点理解二值图像的膨胀与腐蚀腐蚀即...
  • 图像的膨胀与腐蚀--确认这个大牛的才是正确的

    万次阅读 多人点赞 2018-04-16 11:48:18
    图像的膨胀与腐蚀、细化原理:在特殊领域运算形式——结构元素(Sturcture Element),在每个像素位置上二值图像对应的区域进行特定的逻辑运算。运算结构是输出图像的相应像素。运算效果取决于结构元素大小内容...
  • 形态学:膨胀与腐蚀

    万次阅读 2015-03-30 11:19:52
    向浅墨学习。 本系列文章由@浅墨_毛星云 出品,转载请注明出处。  文章链接: http://blog.csdn.net/poem_qianmo/article/details/23710721 ...写作当前博文时配套使用的OpenCV版本:
  • OpenCV-图像处理(10、膨胀与腐蚀

    千次阅读 2019-01-09 20:22:10
    形态学操作(morphology operators)-膨胀与腐蚀(DilationErosion)。 图像形态学操作 图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学 形态学有四个基本操作:...
  • 膨胀腐蚀C语言代码,头文件在之前上传的资源中。 #include <math.h> #include <iostream> #include <string.h> #include "matrix.h" #include <time.h> #include <float.h> #...
  • 实现图像的膨胀与腐蚀算法

    千次阅读 2018-09-13 09:09:05
    经过几次学习opencv源代码,我决定自己动手写一下膨胀腐蚀算法,如果具体算法原理不明确的话,可以看看前几篇我总结的膨胀腐蚀算法原理: 腐蚀算法 /***************************************************** ...
  • OpenCV 膨胀与腐蚀 文章目录1、什么是膨胀与腐蚀2、形态学处理——膨胀2.1 更改卷积核大小2.2、更改迭代次数3、形态学处理——腐蚀3.1、更改卷积核大小3.2、更改迭代次数4、开运算和闭运算4.1、开运算4.2、闭...
  • 图像的膨胀与腐蚀、细化

    万次阅读 2016-07-10 13:35:26
    结构元素:膨胀腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小还很多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点指定了图像中需要处理的像素范围,
  • 作用区域:腐蚀与膨胀是对白色部分(高亮部分)而言,不是黑色部分。膨胀类似于“领域扩张”,腐蚀类似于“领域被蚕食”。 元素:设X是一个图像,B是一个矩阵。X是被处理的对象,而B是用来处理X的,则称B为结构元素...
  • 膨胀与腐蚀的应用

    2010-12-09 21:30:00
    <br />膨胀的应用: A=imread('broken-text.tif'); B=[0 1 0;1 1 1;0 1 0]; A2=imdilate(A,B); imshow(A2); figure,imshow(A); 腐蚀的应用: A=imread('wirebond_mask.tif...
  • 二值图像有些差异。 示例: (1)灰度膨胀 >> t=rand(7,8); >> t=ceil(t.*256)%t为灰度图像 t = 209125191916824615814 23220510111342141122136 3337168...
  • 膨胀与腐蚀都支持任意形状的结构元素。 膨胀(Dilate):用掩膜覆盖位置下的最大像素替代中心位置的像素。 膨胀的作用: 1、对象大小增加一个像素(3*3) 2、平滑对象边缘 3、减少或者填充对象之间的距离 腐蚀...
1 2 3 4 5 ... 20
收藏数 9,540
精华内容 3,816
关键字:

膨胀与腐蚀