halcon例程學習 一維測量之弧形邊緣


*************************************************************************

*學習例程 measure_arc.hdev 
*date:2019/07/30

*************************************************************************
*讀取圖像
read_image (Image, 'zeiss1')
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
get_image_size (Image, Width, Height)

*************************************************************************
*設置弧形
nRow         := 275
nColumn      := 335
nRadius      := 107
nAngleStart  := -rad(55)
nAngleExtent := rad(170)

*nAngleStart+nAngleExtent 弧形長度
*nRow 橢圓中心行坐標
*nColumn 橢圓中心列坐標
*nRadius 橢圓最長軸半徑
*nRadius 橢圓最短軸半徑
*RowPoint 輸出點行坐標
*ColPoint 輸出點列坐標

get_points_ellipse (nAngleStart+nAngleExtent, nRow, nColumn, 0, nRadius, nRadius, RowPoint, ColPoint)

*****************************************************************************************************************
*繪制弧形線
dev_set_draw ('fill')
dev_set_color ('green')
dev_set_line_width (1)
*RowPoint 開始點行坐標
*ColPoint 開始點列坐標

disp_arc (WindowHandle, nRow, nColumn, nAngleExtent, RowPoint, ColPoint)

*****************************************************************************************************************
*提取垂直於環形的直邊

*獲取弧形測量句柄
*10 - 環空半徑 <= nRadius
gen_measure_arc (nRow, nColumn, nRadius, nAngleStart, nAngleExtent, 10, Width, Height, 'nearest_neighbor', MeasureHandle)

*提取垂直於矩形或環形弧的直線邊緣
*1-高斯平滑
*10-最低邊緣振幅
*'all' - 由明-暗,或暗-明
*'all' - 端點選擇
*Amplitude - 邊緣振幅的邊緣

measure_pos (Image, MeasureHandle, 1, 10, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)

close_measure (MeasureHandle)

gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 60, 0)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM