日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HALCON示例程序measure_pump.hdev螺紋孔位置與尺寸測量

示例程序源碼(加注釋)

  • 關于顯示類函數解釋
    dev_update_var (‘off’)
    dev_update_off ()
    read_image (Image, ‘pumpe’)
    get_image_size (Image, Width, Height)
    dev_close_window ()
    dev_open_window (0, 0, Width, Height, ‘light gray’, WindowID)
    dev_set_part (0, 0, Height - 1, Width - 1)
    dev_set_line_width (1)
    dev_set_color (‘red’)
    dev_set_draw (‘margin’)
    dev_display (Image)
    set_display_font (WindowID, 16, ‘mono’, ‘true’, ‘false’)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()
  • 快速二值化、篩選區域、輪廓變換、膨脹、縮小定義域、求邊界
    fast_threshold (Image, Region, 0, 70, 150)
    dev_set_colored (3)
    connection (Region, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, [‘outer_radius’,‘anisometry’,‘area’], ‘and’, [5,1,100], [50,1.8,99999])
    shape_trans (SelectedRegions, RegionTrans, ‘outer_circle’)
    dilation_circle (RegionTrans, RegionDilation, 5.5)
    union1 (RegionDilation, RegionUnion)
    reduce_domain (Image, RegionUnion, ImageReduced)
    dev_clear_window ()
    dev_display (ImageReduced)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()
    threshold_sub_pix (ImageReduced, Border, 80)
  • 邊界篩選
    select_shape_xld (Border, SelectedXLD, [‘contlength’,‘outer_radius’], ‘and’, [70,15], [99999,99999])
  • 分割
    segment_contours_xld (SelectedXLD, ContoursSplit, ‘lines_circles’, 4, 2, 2)
  • 在進行篩選
    select_shape_xld (ContoursSplit, SelectedXLD3, [‘outer_radius’,‘contlength’], ‘and’, [15,30], [45,99999])
  • 合并處于同一圓的xld輪廓
    union_cocircular_contours_xld (SelectedXLD3, UnionContours2, 0.5, 0.1, 0.2, 2, 10, 10, ‘true’, 1)
  • 對xld輪廓進行排序
    sort_contours_xld (UnionContours2, SortedContours, ‘upper_left’, ‘true’, ‘column’)
    dev_clear_window ()
    dev_set_color (‘white’)
    dev_display (ImageReduced)
    dev_display (SortedContours)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()
    count_obj (SortedContours, NumSegments)
    dev_display (Image)
    dev_display (SortedContours)
    NumCircles := 0
    disp_message (WindowID, ‘Circle radius and average distance’, ‘window’, 10, 10, ‘white’, ‘false’)
    disp_message (WindowID, ‘between circle and contour:’, ‘window’, 30, 10, ‘white’, ‘false’)
for i := 1 to NumSegments by 1select_obj (SortedContours, SingleSegment, i)NumCircles := NumCircles + 1* 擬合圓形fit_circle_contour_xld (SingleSegment, 'atukey', -1, 2, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)* 繪制圓形輪廓gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1)dev_display (ContCircle)* 計算輪廓到橢圓距離dist_ellipse_contour_xld (SingleSegment, 'algebraic', -1, 0, Row, Column, 0, Radius, Radius, MinDist, MaxDist, AvgDist, SigmaDist)disp_message (WindowID, NumCircles, 'window', Row - 10, Column - 5, 'white', 'false')disp_message (WindowID, 'R' + NumCircles + ': ' + Radius$'.3', 'window', (i - 1) * 50 + 30, 450, 'white', 'false')disp_message (WindowID, 'D_avg: ' + AvgDist$'.3', 'window', ((i - 1) * 50) + 50, 450, 'white', 'false') endfor

dev_update_window (‘on’)

處理思路

這個例子是主要講解了邊緣提取,計算尺寸與位置。

后記

大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。

總結

以上是生活随笔為你收集整理的HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。