zoukankan      html  css  js  c++  java
  • halcon形态学运算

    腐蚀、膨胀、开运算(先腐蚀后膨胀)、闭运算(先膨胀后腐蚀)

    以halcon自带案例ball.hdev为例(开运算),注意代码有所缩减。关于sort_region函数,参考http://blog.sina.com.cn/s/blog_13849dbbc0102xhts.html

    dev_update_window ('off') //停止更新窗体
    dev_close_window () //关闭窗体
    dev_open_window (0, 0, 728, 512, 'black', WindowID) //创建窗口,并指定句柄
    read_image (Bond, 'die/die_03')
    dev_display (Bond)
    threshold (Bond, Bright, 100, 255)//二值化,灰度直方图工具
    shape_trans (Bright, Die, 'rectangle2') //形状变换,获得二值图连通域的最小外接矩形
    dev_display (Die)
    reduce_domain (Bond, Die, DieGrey) //缩减区域,缩放原区域至新的范围,新范围必须是原范围的子域。
    threshold (DieGrey, Wires, 0, 50)
    fill_up_shape (Wires, WiresFilled, 'area', 1, 100)//孔洞填充,面积1~100的孔洞
    dev_display (WiresFilled)
    opening_circle (WiresFilled, Balls, 15.5) //开运算,先腐蚀后膨胀。留下面积较大的区域
    dev_display (Balls)
    connection (Balls, SingleBalls) //连通域拆分
    //拆分后,特征直方图,通过圆度选取目标圆
    select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
    //可以省略排序步骤,除非需要显示部分目标的参数(如只显示第2-3的外接圆直径)
    sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')//排序区域,按列排序从左边第一个升序
    dev_display (FinalBalls)
    smallest_circle (FinalBalls, Row, Column, Radius)//获得每个区域最小外接圆参数
    NumBalls := |Radius|
    Diameter := 2 * Radius
    meanDiameter := mean(Diameter) //可省略
    minDiameter := min(Diameter)  //可省略
    dev_display (Bond) //显示原图
    disp_circle (WindowID, Row, Column, Radius)
    //显示外接圆直径,在圆上方
    disp_message (WindowID, 'D: ' + Diameter$'.4', 'image', Row - 2 * Radius, Column, 'white', 'false')
    dev_update_window ('on') //更新窗体

    若只显示第2-3的外接圆直径,可以更改相应代码

    disp_message (WindowID, 'D: ' + Diameter[1:2]$'.4', 'image', Row[1:2] - 2 * Radius[1:2], Column[1:2], 'white', 'false')

     

    重要步骤图(只截取了右部区域):

    原图——二值化——最小外接矩形——缩减区域(获得ROI)

    二值化——孔洞填充——开运算——连通域拆分,得到目标圆——显示参数

  • 相关阅读:
    Leetcode 121. Best Time to Buy and Sell Stock
    Leetcode 120. Triangle
    Leetcode 26. Remove Duplicates from Sorted Array
    Leetcode 767. Reorganize String
    Leetcode 6. ZigZag Conversion
    KMP HDU 1686 Oulipo
    多重背包 HDU 2844 Coins
    Line belt 三分嵌套
    三分板子 zoj 3203
    二分板子 poj 3122 pie
  • 原文地址:https://www.cnblogs.com/xixixing/p/10601592.html
Copyright © 2011-2022 走看看