zoukankan      html  css  js  c++  java
  • 形态学相关算子

    腐蚀:利用n*n的结构元素扫描图像的每一个像素,结构元素原点与扫描像素覆盖,进行“与”运算,如果都为1,则结果图像的该像素为1,否则为0。(收缩图像)

    膨胀:利用n*n的结构元素扫描图像的每一个像素,结构元素原点与扫描像素覆盖,进行“与”运算,如果都为0,则结果图像的该像素为0,否则为1。(扩大图像)

    腐蚀是求局部最小值的操作,结构元沿着图像逐像素滑动,计算结构元覆盖的区域的像素点的最小值,并把这个最小值赋值给结构元原点覆盖的像素点,这种操作可以将图像中小于结构元的细节部分滤除掉。

    膨胀操作则与腐蚀相反,结构元覆盖的区域会被拓展

    region边界应用:

    原图 - 腐蚀后 = 内边界

    原图 - 膨胀后 = 外边界

    1.gen_disc_se

    功能:创建椭圆形结构元素,用于图像的腐蚀膨胀

    2.gray_erosion

    功能:使用结构元素对图像做腐蚀操作

    3.gray_dilation

    功能:使用结构元素对图像做膨胀操作

    4.erosion_circle

    功能:使用圆形结构元素对区域region做腐蚀操作

    5.erosion_rectangle1

    功能:使用矩形结构元素对区域region做腐蚀操作

    6.dilation_circle

    功能:使用圆形结构元素对区域region做膨胀操作

    7.dilation_rectangle1

    功能:使用矩形结构元素对区域region做膨胀操作

    8.erosion1

    功能:使用结构元素对区域region做迭代腐蚀操作

    9.erosion2

    功能:使用结构元素对区域region做迭代腐蚀操作(可设置结构元素原点)

    10.dilation1

    功能:使用结构元素对区域region做迭代膨胀操作

    11.dilation2

    功能:使用结构元素对区域region做迭代膨胀操作(可设置结构元素原点)

    12.minkowski_add1

    功能:使用结构元素对区域region做闵可夫斯基加法操作

    13.minkowski_add2

    功能:使用结构元素对区域region做闵可夫斯基加法操作(可设置结构元素原点)

    如果结构元素对称,则闵可夫斯基加法与膨胀效果一样

    如果结构元素不对称,则闵可夫斯基加法与膨胀效果不一样

    14.minkowski_sub1

    功能:使用结构元素对区域region做闵可夫斯基减法操作

    15.minkowski_sub2

    功能:使用结构元素对区域region做闵可夫斯基减法操作(可设置结构元素原点)

    如果结构元素对称,则闵可夫斯基减法与腐蚀效果一样

    如果结构元素不对称,则闵可夫斯基减法与腐蚀效果不一样

    16.hit_or_miss

    功能:对区域region做击中与击不中区域计算

     

    ****************************开运算****************************

     

    先腐蚀后膨胀,用来消除小物体,分离物体,平滑较大物体的边界,扩大暗背景,收缩亮前景。

    1.opening

    功能:使用结构元素对区域region做开运算

    2.opening_circle

    功能:使用圆形结构元素对区域region做开运算

    3.opening_rectangle1

    功能:使用矩形结构元素对区域region做开运算

    4.gray_opening

    功能:使用灰度值结构元素对图像做开运算

    5.gray_opening_rect

    功能:使用矩形灰度值结构元素对图像做开运算

    6.gray_opening_shape

    功能:使用多边形灰度值结构元素对图像做开运算

    ****************************闭运算****************************

    先膨胀后腐蚀,用来填充物体内部细小孔洞,连接邻近物体,平滑边界,扩大亮前景,收缩暗背景。

    1.closing

    功能:使用结构元素对区域region做闭运算

    2.closing_circle

    功能:使用圆形结构元素对区域region做闭运算

    3.closing_rectangle1

    功能:使用矩形结构元素对区域region做闭运算

    4.gray_closing

    功能:使用灰度值结构元素对图像做闭运算

    5.gray_closing_rect

    功能:使用矩形灰度值结构元素对图像做闭运算

    6.gray_closing_shape

    功能:使用多边形灰度值结构元素对图像做闭运算

    ****************************顶帽(礼帽)变换****************************

    顶帽运算往往用来分离比邻近点亮一些的斑块。(顶帽变换结果 = 原始图像 - 开运算结果

    当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。

    dev_close_window ()
    read_image(Image, 'E:/MyHalcon/yzm.png')
    dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
    dev_display (Image)
    rgb1_to_gray (Image, GrayImage)
    threshold (GrayImage, Regions, 0, 223)
    
    gen_ellipse (Ellipse, 200, 200, 0, 3, 2)
    top_hat (Regions, Ellipse, RegionBottomHat)
    difference (Regions, RegionBottomHat, ImageSub)
    dev_clear_window ()
    dev_display(RegionBottomHat)
    disp_message (WindowHandle, '顶帽结果', 'window', 12, 12, 'black', 'true')
    disp_continue_message (WindowHandle, 'black', 'true')
    stop()
    dev_clear_window ()
    dev_display(ImageSub)
    disp_message (WindowHandle, '与原图求差异,提取前景', 'window', 12, 12, 'black', 'true')
    

    1.原图

    2.阈值图

    3.顶帽变换结果

    4.提取前景

    1.top_hat

    功能:区域region顶帽变换操作

    2.gray_tophat

    功能:灰度图像做顶帽变换操作,通过gen_disc_se生成灰度结构元素

    3.bottom_hat

    功能:区域region底帽(黑帽)变换操作

    4.gray_bothat

    功能:灰度图像做底帽变换操作

    底帽变换结果 = 闭运算结果 - 原始图像

    适用于在较亮的背景中求暗的像素点

    5.morph_hat

    功能:区域region形态帽变换操作(闭运算-开运算)

  • 相关阅读:
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31
    知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31无涯 - I
  • 原文地址:https://www.cnblogs.com/zhengzc/p/11429549.html
Copyright © 2011-2022 走看看