精华内容
下载资源
问答
  • 形态学算子

    2019-07-22 15:56:13
    形态学算子的主要思想是用一定形状的结构元素SE(structureelement)在图像中抽取出相应的某些结构,通常可以用于图像的滤波、分割、分类等处理。形态学算子有腐蚀、膨胀、开和闭四种。 腐蚀 腐蚀是...

    形态学算子的主要思想是用一定形状的结构元素SE(structureelement)在图像中抽取出相应的某些结构,通常可以用于图像的滤波、分割、分类等处理。形态学算子有腐蚀、膨胀、开和闭四种。

    腐蚀

    腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。
    腐蚀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。
    结果:使二值图像减小一圈

    膨胀

    膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。
    膨胀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为0,结果图像的该像素为0。否则为1
    结果:使二值图像扩大一圈
    虽然腐蚀可以将粘连的目标进行分离,膨胀可以将断续的目标进行连接,但是无论是腐蚀还是膨胀处理后,目标的尺寸都会产生变化。
    开运算,闭运算就是为了解决这个问题。

    开运算

    先腐蚀后膨胀的过程称为开运算。
    用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。

    闭运算

    先膨胀后腐蚀的过程称为闭运算。
    用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

    展开全文
  • 此代码使用形态学运算符实现了车牌检测,并大致遵循以下方法: 1. Farhad Faradji、Amir Hossein Rezaie、Majid Ziaratban “基于形态学的车牌位置”ICIP 2007。 2. Farhad Faraji 和 Reza Safabakhsh,“基于形态学...
  • 基于四元数表达的模糊矢量形态学算子
  • 基于模糊极值估计的矢量数学形态学算子
  • 为解决单一形态学算子在LiDAR数据滤波中的准确性和自动识别问题,提出了一种融合序列形态学算子的城区LiDAR滤波方法.在顾及多种形态学算子优势互补特性和LiDAR不同地物数据特点的基础上,首先利用形态学开运算及白...
  • 详细介绍了一维情况下灰度形态变换、形态学算子构造的滤波器和提取暂态突变特征等。应用电力系统暂态仿真软件PSCAD/EMTDC,仿真结果表明,在选择合适结构元素的条件下,数学形态算子有很好的滤波功能,对突变信号的检测...
  • 一种基于形态学算子的睫毛干扰抑制方法,唐荣年,韩九强,为增强虹膜识别算法对睫毛干扰的抑制能力,本文提出了一种基于形态学算子的睫毛干扰抑制方法。该方法将虹膜图像中存在的睫毛干扰
  • 旨在建立基于张量模型的彩色图像形态学算子。通过将HSV彩色空间下的三维向量利用二阶对称正定张量进行建模表示,提出一种基于反调和平均的彩色形态学算子。在此基础上,借助于张量相似性度量构造基于参考张量的形态...
  • 基于形态学算子的车辆遮挡检测与分割算法 现代汽车工业的Swift发展促进了道路交通的发展,并增加了汽车数量。 各种各样的道路交通问题导致汽车数量激增,从而推动了ITS(智能交通系统)的诞生。 视频车辆检测是ITS的...
  • 引入形态学算子计算目标区域体态比和紧密度,过滤背景干扰物;采用卡尔曼滤波与匹配矩阵相结合实现多个运动目标的跟踪;通过目标在HSV颜色空间中的H值、目标间的欧氏距离和目标相交面积等特征融合,提高目标跟踪的...
  • 针对木粉显微图像边缘复杂、细节模糊等问题,提出一种基于HSV空间目标提取和改进数学形态学多尺度算子的边缘检测算法。基于HSV空间提取目标,排除背景噪声干扰;通过最佳方向检测改进传统多尺度形态学检测算子,避免...
  • 针对胸水病理细胞显微图像的灰度分布不均匀性、灰度级范围窄等情况,提出了利用数学形态学方法与Canny算子相结合的算法对其进行边缘检测。首先利用Canny算子对细胞进行边缘的初次分割提取,然后利用数学形态学中的...
  • 针对传统的边缘检测方法因卷积运算造成模糊图像边缘,且对噪声敏感,各种形态学边缘检测方法因检测到的边缘信息类型不同而容易使边缘信息丢失,提出一种组合式抗噪型形态学边缘检测算子;并利用不同尺度的结构元素...
  • 从采集视频中提取帧图像,应用梯度算子进行滤波处理划分得到焦平面范围,同时,提出结合数学形态学方法在小范围内消除焦平面区域的不连续性,扩展焦平面范围,使得不能检测到的焦平面得到较好的处理。通过布尔代数...
  • 本文总结了腐蚀,膨胀和开闭操作在二值图像上的应用,基于opencv给出了实例。 参考:《数字图像处理》(第三版) 冈萨雷斯 1、腐蚀 腐蚀的定义为:在二维整数空间中,存在...可以将腐蚀视为形态学滤波,这种操作...

    本文总结了腐蚀,膨胀和开闭操作在二值图像上的应用,基于opencv给出了实例。

    参考:《数字图像处理》(第三版)  冈萨雷斯

    1、腐蚀

    腐蚀的定义为:在二维整数空间Z^2中,存在集合A和B,则B对A的腐蚀记为:

    A\ominus B=\{z|(B)_z\subset A \}

    其中(B)_z=\{c|c=b+z,b\in B\},称为集合B按照点z的平移。

    上面的定义含义是,B对A的腐蚀是一个用z平移的B包含在A中的所有的点z的集合。腐蚀缩小或细化了二值图像中的物体。可以将腐蚀视为形态学滤波,这种操作将小于结构元的图像细节从图像中滤除。

    2、膨胀

    膨胀的定义为:A和B是Z^2中的集合,B对A的膨胀为:

    A\oplus B=\{z|(\hat{B})_z \cap A \neq \emptyset \}

     其中\hat{B}是集合B的反射,即\hat{B}=\{w|w=-b,b\in B\}

    从膨胀的定义可以得知,B对A的膨胀是在保证\hat{B}A至少有一个元素是重叠的前提下,所有位移z的集合。膨胀会“增长”或“粗化”二值图像中的物体,这种特殊的方式和粗化的宽度由所用结构元来控制。

    3、开操作和闭操作

    结构元B对集合A的开操作表示为:

    A\circ B=(A\ominus B)\oplus B

    上式的含义是B对A的开操作就是B对A的腐蚀,紧接着用B对结果进行膨胀。

    结构元B对集合A的闭操作表示为:

    A\bullet B=(A\oplus B)\ominus B

    上式的含义是B对集合A的闭操作就是简单地用B对A膨胀,紧接着用B对结果进行腐蚀。

    开操作一般会平滑物体的轮廓、断开较窄的狭颈并消除较细的突出物。

    闭操作同样也会平滑轮廓的一部分,但与开操作相反,它通常会弥合较窄的间断和细长的沟壑,消除较小的孔洞,填补轮廓线中的断裂。

    4、应用opencv实现腐蚀和膨胀

    代码如下

    # encoding:utf-8
    
    import cv2
    import numpy as np
    
    kernel5 = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
    kernel10 = cv2.getStructuringElement(cv2.MORPH_RECT,(10,10))
    
    img = cv2.imread("five.jpg")
    gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    ret,binary_img = cv2.threshold(gray_img,0,255,cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)
    dilate_img = cv2.dilate(binary_img,kernel5)  # 膨胀
    erode_img = cv2.erode(binary_img,kernel5)   # 腐蚀
    H, W = binary_img.shape
    gap = np.ones(shape=(H,W//10),dtype=np.uint8)*255
    im = np.hstack([binary_img,gap,dilate_img,gap,erode_img])
    cv2.imshow("",im)
    cv2.waitKey(0)
    
    
    open_img5 = cv2.dilate(erode_img,kernel5)
    close_img5 = cv2.erode(dilate_img,kernel5)
    im = np.hstack([binary_img,gap,open_img5,gap,close_img5])
    cv2.imshow("",im)
    cv2.waitKey(0)
    
    open_img10 = cv2.dilate(erode_img,kernel10)
    close_img10 = cv2.erode(dilate_img,kernel10)
    im = np.hstack([binary_img,gap,open_img10,gap,close_img10])
    cv2.imshow("",im)
    cv2.waitKey(0)

    膨胀和腐蚀的结果如下图所示,最左侧是原图经过二值化之后的图,中间是用5乘5的矩形结构元膨胀的图,右侧是腐蚀的图。可以看到原图笔画中存在一些狭窄的断裂,膨胀之后笔画变粗了一些,并且断裂消失了。腐蚀之后笔画变得更细,并且笔画之间的断裂变得更大。膨胀图中的噪点同样变大了,腐蚀图中虽然噪点消失了,但是笔画不连续。

    使用5乘5开操作和闭操作的结果如下图所示,左侧是原图的二值图,中间是开操作的图,也就是先腐蚀再膨胀,可以看到腐蚀的时候已经去除了图中的噪点,膨胀操作让笔画显得更粗一些。右侧是闭操作图,即先膨胀再腐蚀,因为膨胀的时候噪点也放大了,因此经过腐蚀之后,还是存在噪点。

    先使用5乘5腐蚀和膨胀,然后使用10乘10的结构元进行开闭操作,结果如下图所示。可以看到开操作和闭操作的图中,都没有噪点,并且笔画也更加连贯。

    展开全文
  • 第二步是通过使用形态学运算符去除血管。 在最后一步中,我们使用基于熵最大化阈值的算法来计算结果图像,以获得在第二步中突出显示的两个分段区域(光盘和渗出液)。 最后,根据大小标准,我们消除了其他区域,...
  • 如何使用canny算子将细胞的边缘提取出来,从而获得细胞相应的具体参数
  • * This programs demonstrates the use of basic morphology * operators. * The aim of the program is to detect each single pellet * (bright particle on a darker background). * dev_update_off () ...

    Halcon中 Blob分析 之count_pellets.hdev 示例



    * This programs demonstrates the use of basic morphology
    * operators.
    * The aim of the program is to detect each single pellet
    * (bright particle on a darker background).
    * 
    *把程序窗口、变量窗口、显示窗体变为off状态
    dev_update_off () 
    *读取图片
    read_image (Image, 'pellets')
    *关闭显示窗口
    dev_close_window ()
    *获取图片的宽高
    get_image_size (Image, Width, Height)
    *打开一个新的带有所给图像纵横比图像窗口
    dev_open_window (0, 0, Width, Height, 'black', WindowID)
    *修改图像显示的位置
    dev_set_part (0, 0, Height-1, Width-1)
    *设置窗口文字显示格式
    set_display_font (WindowID, 16, 'mono', 'true', 'false')
    *指定颜色
    dev_set_colored (6)
    *显示的对象只有边缘线
    dev_set_draw ('margin')
    *指定线宽度
    dev_set_line_width (3)
    *显示图片
    dev_display (Image)
    
    * Segment the regions of the pellets from the background
    *自动确定阈值  Region:黑暗的区域的图像
    bin_threshold (Image, DarkRegion)
    *填充满足给定的图形特征的区域
    fill_up_shape (DarkRegion, RegionFillUp, 'area', 1, 10)
    *计算两个区域的不同,并返回 
    difference (Image, RegionFillUp, Region)
    *显示区域
    dev_display (Region)
    stop ()
    * 
    * Compute the connected pellet regions
    * Note, that this approach fails, because some of
    * the pellets are still connected.
    *合并所有选定像素触摸相互连通区
    connection (Region, ConnectedRegionsWrong)
    *显示图片
    dev_display (Image)
    *显示图片
    dev_display (ConnectedRegionsWrong)
    stop ()
    * 
    * Separate each pellet from the others by erosion
    *用一个圆形的结构元素腐蚀图像
    erosion_circle (Region, RegionErosion, 7.5)
    *显示区域
    dev_display (RegionErosion)
    stop ()
    * 
    * Now, compute the connected pellet regions
    *合并所有选定像素触摸相互连通区
    connection (RegionErosion, ConnectedRegions)
    *显示图像
    dev_display (ConnectedRegions)
    stop ()
    * 
    * Turn back to the original pellet size by applying a dilation
    *用一个圆形的结构元素膨胀图像
    dilation_circle (ConnectedRegions, RegionDilation, 7.5)
    *主要是用来计算被识别出来的区域的个数
    count_obj (RegionDilation, Number)
    *显示图像
    dev_display (Image)
    *显示图像
    dev_display (RegionDilation)
    *显示文字信息
    disp_message (WindowID, Number + ' pellets detected', 'window', 12, 12, 'black', 'true')


         

    展开全文
  • 图像形态学之腐蚀算子

    千次阅读 2018-03-03 15:55:12
    最基本的形态学算子有:腐蚀(erosion)、膨胀(dilation)、开(opening)、闭(closing)和骨骼(skelton).HALCON的形态学运算有基于二值图区域的形态学算子和基于灰度区域的形态学算子。1、腐蚀 腐蚀在数字形态学运算的...
    数字形态学是由一组形态学代数运算子组成的。最基本的形态学算子有:腐蚀(erosion)、膨胀(dilation)、开(opening)、闭(closing)和骨骼(skelton).HALCON的形态学运算有基于二值图区域的形态学算子和基于灰度区域的形态学算子。
    
    1、腐蚀
    腐蚀在数字形态学运算的作用是消除物体边界点。如果结构元素去3*3的黑点块,腐蚀将使物体的边界沿周边减少一个像素。
    腐蚀可以把小于结构元素的物体去除,这样选取不同大小的结构元素,就可以去掉不同大小的物体。
    如果两个物体之间的细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。
    erosion1(Regoin, StructElement:RegoinErosion:Iterations:)
    功能:根据参考点,使用用户自定义的结构元素对区域进行腐蚀。腐蚀的结果元素是一个区域region,可由这些算子产生:gen_circle, gen_rectangle1, gen_rectangle2, gen_ellipse, draw_region, gen_region, gen_region_polygon, gen_region_points等。
    参数: Region(输入参数):输入区域
    StructElement(输入参数):结构元素(区域)
    RegionErosion(输出参数):腐蚀后的区域
    Iterations(输入参数):迭代资料

    erosion2(Regoin, StructElement:RegionErosion:Row, Column, Iterations)
    功能:根据参考点,使用用户自定义的结构元素对区域进行腐蚀。腐蚀的结果元素是一个区域region。可由这些算子产生:gen_circle,gen_rectangle1, gen_rectangle2, gen_ellipse, draw_region, gen_region_polygon, gen_region_points等。
    可以这么理解这个算子的功能:首先根据用户定义的结构元素腐蚀区域,然后根据参考点和结构元素中心的相对位置,平移腐蚀后的区域。例如参考点坐标为(y=220, x=210),点和结构元素中心坐标为(y=230, x=220),腐蚀后的区域的平移量由参考点坐标减去结构元素中心坐标,即(y=220-230=-10, x=210-220=-10)。注意,参考点坐标是图像的绝对坐标,参考点坐标=结构元素中心坐标+平移量。
    参数: Region(输入参数):输入区域
    StructElement(输入参数):结构元素(区域)
    RegionErosion(输出参数):腐蚀后的区域 
    Row(输入参数):参数点行坐标
    Column(输入参数):参数点行坐标
    Iterations(输入参数):迭代次数。

    erosion_circle(Region:RegionErosion:Radius:)
    功能:使用圆形结构元素腐蚀区域。
    参数: Region(输入参数):输入区域
    RegoinErosion(输出参数):腐蚀后的区域。
    Radius(输入参数):圆形结构元素的半径。

    erosion_rectangle1(Region:RegionErosion:Width,Height:)
    功能:使用矩形结构元素腐蚀区域
    参数: Region(输入参数):输入区域
    RegionErosion(输出参数):腐蚀后的区域
    Width(输入参数):矩形结构元素的宽度
    Height(输出参数):矩形结构元素的高度

    二值图像的腐蚀操作举例:

    结构的原点设置在结构的内部情况举例

    图中左侧(a)为原图像,右侧(b)为结构元素

    第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)

             

    第二步 然后我们根据原点在原图像中的位置,在输出图像上完全对应的位置上涂黑,即输出图像更变为


    第三步 在原图中寻找下一个完全和结构元素匹配部分,即


    第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即

                      

    第五步 寻找完结,操作完毕

    结构的原点设置在结构的外部情况举例


    左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部

    第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)


    第二步 根据结构元素的原点在原图中的位置, 我们再输出图像相应的位置涂黑,即


    第三步 在原图中寻找下一个完全和结构元素匹配部分,即


    第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即


    第五步 寻找完结, 操作完毕

    展开全文
  • 矢量柔性形态学梯度算子
  • 矢量自对偶形态学滤波算子
  • 经典的形态学梯度算子不能直接拓展到彩色图像处理中,现有的矢量形态学梯度算子对噪声较为敏感且性能较低。为解决该问题,提出了一种新的柔性矢量形态学梯度算子,并将其应用到彩色图像边缘检测中。新的形态学梯度...
  • 针对传统的接触式钢轨端面几何特征测量误差大且测量结果不稳定的问题,基于数学形态学梯度算子的方法实现钢轨端面几何特征的非接触测量.测量采用工业CCD数码相机采集钢轨端面图像数据,将其灰度处理并得到图像的二值...
  • 基于数学形态学和Canny算子的边缘提取方法-基于数学形态学和Canny算子的边缘提取方法.pdf 基于数学形态学和Canny算子的边缘提取方法.
  • 形态学相关算子

    2019-09-29 23:19:10
      腐蚀:利用n*n的结构元素扫描图像的每一个像素,结构元素原点与扫描像素覆盖,进行“与...功能:区域region形态帽变换操作(闭运算-开运算)   转载于:https://www.cnblogs.com/zhengzc/p/11429549.html
  • 形态学之骨架算子

    千次阅读 2018-03-03 10:58:30
    第二,在X缩小的过程中,应当使X的连通性质保持不变的骨架算子介绍1、skeletion(Region:Skeleton::)功能:计算区域的骨骼参数: Region(输入参数):输入区域 Skeleton(输出参数):结果区域2、junctions_...
  • 图像形态学之膨胀算子

    千次阅读 2018-03-03 16:42:49
    膨胀运算在数字形态中的作用是把图像周围的背景点合并到物体中。如果两个物体之间距离比较近,那么膨胀运算可能会使这两个物体连接在一起。膨胀对填补图像分割后物体中的空洞很有用。 dilation1(Region, ...
  • 立即下载aspectjweaveraspectjweaver.jar立即下载C#实现图像...二色,浮雕,马赛克,反色,黑白,柔化,锐化,起雾,氖等处理方法立即下载Canny算子与数学形态学算子的结合实现胸腔积液边缘提取如何使用canny运算...
  • 工业相机软件开发资料,对算子形态学进行原理分析,非智能相机比较好的学习资料

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,063
精华内容 2,025
关键字:

形态学算子