膨胀与腐蚀_腐蚀与膨胀 - 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);%...
  • 数学形态学运算——腐蚀膨胀、开运算、闭运算

    万次阅读 多人点赞 2018-03-27 10:21:48
    数学形态学有2个基本的运算,即腐蚀膨胀,而腐蚀膨胀通过结合又形成了开运算和闭运算。 开运算就是先腐蚀膨胀,闭运算就是先膨胀腐蚀。 二值形态学 腐蚀 粗略的说,腐蚀可以使目标区域范围“变小”...
  • opencv-python中的腐蚀与膨胀函数

    万次阅读 2017-09-04 15:22:51
    就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然是白色)。 这是怎么做到的呢?卷积核沿着图像滑动,如果卷积核对应的原图像的所有像素值都是1,那么中心元素就保持原来的像素值,否则就变为零...
  • 图像的腐蚀与膨胀算法原理

    千次阅读 2017-07-31 09:27:22
    1.用结构元素B扫描图像X的所有像素点(以B的原点为坐标,对应A的各个像素点进行扫描),用结构元素BX覆盖的二值X图像做 “”操作。 2.如果结构元素B为黑色的点,图像A相对应的点都为黑色,则该点的像素为黑色,...
  • 图像腐蚀与图像膨胀(Python篇)

    万次阅读 2018-11-17 11:45:07
    本文介绍图像的膨胀腐蚀的基本概念及其各自的代码实现。  1.膨胀腐蚀的基本概念  图像的膨胀(Dilation)和腐蚀(Erosion)是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域。其中膨胀类似...
  • 腐蚀与膨胀基本原理:就是用一个特定的结构元素来与待处理图像按像素做逻辑操作;可以理解成拿一个带孔的网格板(结构元素矩阵中元素为1的为孔)盖住图像的某一部分,然后按照各种不同的观察方式来确定操作类型。 ...
  • 膨胀腐蚀在MATLAB中

    千次阅读 2016-05-18 19:52:10
    腐蚀膨胀操作更细致的分析(主要谈论涉及图像边缘的腐蚀膨胀运算)。 注:结构元素在扫描图像中的每个像素时,结构元素的邻域有部分会在图像外面。比如当结构元素扫描图像上方第一行像素值(这里默认结构元素为3×...
  • 图像处理中腐蚀与膨胀的原理

    万次阅读 2018-10-30 15:56:28
    腐蚀的原理: 二值图像前景物体为1,背景为0.假设原图像中有一个前景物体,那么我们用一个结构元素去腐蚀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取...
  • 在学习这一部分之前,我们必须先有个明确的膨胀腐蚀的概念,就上图而言,膨胀腐蚀都是针对白色部分而不是黑色部分,膨胀就是白色区域扩大,腐蚀就是白色区域缩小 1、腐蚀 要进行腐蚀操作,我们要用到cv2....
  • 形态学滤波:腐蚀与膨胀(浅谈)

    千次阅读 2018-05-17 08:19:13
    形态学滤波:腐蚀与膨胀(浅谈) 一 关于二值化、膨胀、腐蚀以及拟合椭圆中心的代码如下** 二 关于腐蚀和膨胀,在此做一些浅显的总结。 三 对于上述代码中所生成的图片,进行一些说明。 四 接下来谈谈自己对腐蚀膨胀...
  • Halcon入门之腐蚀膨胀

    万次阅读 2017-07-22 00:15:08
    基本手法如下: 1、采集图像 2、预处理 3、分割 4、识别显示1、采集图像 read_image (Image, ‘D:/**‘) get_image_size (Image, Width, Height) dev_open_window(0, 0, Width, Height, ‘black’, Window...
  • 二值图像腐蚀与膨胀操作样例

    万次阅读 多人点赞 2020-10-03 20:56:21
    目录 操作方法简要说明 腐蚀操作 结构元素原点在结构元素内部 原点在结构元素外部 二值图像的膨胀操作 点在结构元素内部 原点在结构元素外部
  • 常用的图像形态学操作包括膨胀腐蚀、闭运算、开运算。 膨胀操作会扩大(粗化)图像中物体的轮廓,可以用来弥补(填充)物体间的孔洞,强化离散点,代价是导致物体的面积比原来的面积要大。 腐蚀操作会收缩(细化...
1 2 3 4 5 ... 20
收藏数 8,620
精华内容 3,448
关键字:

膨胀与腐蚀