Halcon各個算子角度計算方式匯總


一、區域(Region)

1)elliptic_axis() 計算區域的方向(-π/2<θ<=π/2)

     這個算子是通過moments_region_2nd()算子,使用圖形的Geometric Moments(幾何矩)來找到的區域質心和區域方向。水平方向為角度0的方向,區域的方向一般是指長軸與水平方向的夾角(注意:gen_ellipse和elliptic_axis並不是可逆操作,通過gen_ellipse得到的橢圓區域,再用elliptic_axis計算會有誤差,不是特別理解)

2)orientation_region() 計算區域的方向(-π<=θ<π)

    計算方法同elliptic_axis ,當輪胎上與重心最大距離的點,橫坐標在重心左邊時,則計算得到的角度值+π

3) gen_rectangle2計算區域的方向(-π/2<θ<=π/2)

 二、輪廓(XLD)

  1)line_orientation()計算線的方向(-π/2<θ<=π/2)

  2)angle_ll()計算線的角度(-π<=θ<π)

  3)gen_measure_rectangle2獲得測量矩,角度范圍(--π<θ<=π)

  4)執行edges_sub_pix算子后,后續算子涉及到角度的為:

select_contours_xld():'direction'角度范圍為0-π,會把輸入的值自動轉換到0-π之間,下面兩個代碼效果是一樣的
select_contours_xld (ContoursSplit, LineContour1, 'direction', 1.45+π, 1.65+π, -0.5, 0.5)
select_contours_xld (ContoursSplit, LineContour2, 'direction', 1.45, 1.65, -0.5, 0.5)
get_contour_attrib_xld(ObjectSelected3, 'edge_direction', Attrib):
'edge_direction'角度范圍為0-2*π,邊界方向的定義如下:沿着邊界方向,左邊為亮區域,右邊為暗區域。比如:對於垂直直線,若從左到右極性為從暗到亮,則對應角度為270°,否則則為90°

  

 


免責聲明!

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



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