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形态帽变换操作(闭运算-开运算)

  • 相关阅读:
    xx系统需求分析01—用户权限管理(一)
    软件工程第五周总结
    Hbase的常用shell命令+Java操作
    软件需求阅读笔记02
    MyBatis学习总结03-动态SQL
    MyBatis学习总结02
    MyBatis学习总结01
    软件工程第四周总结
    软件需求阅读笔记01
    MapReduce案例-流量统计
  • 原文地址:https://www.cnblogs.com/zhengzc/p/11429549.html
Copyright © 2011-2022 走看看