Halcon 关于角度问题的总结
Halcon 關于角度問題的總結
Halcon處理中有很多關于角度計算的問題,有時候會莫名其妙的出現和想象不一致的問題,簡單的問題很好排查,但有的問題需要理解透原理,才能解決問題。因此為了避免有同樣問題的你踩坑,將我填過的坑分享給大家,希望對你有所幫助。
關于Halcon角度問題還有很多,這篇博客后期會持續更新。如果大家有疑問或者有更好的心得,希望共同探討交流。
一、旋轉角度問題
Halcon中順時針旋轉為負,逆時針旋轉為正。
以紅色線條為基準,順時針旋轉45度(白色線條),逆時針旋轉45度(綠色線條)。
代碼:
* 生成矩形的中心點以及角度 RecRow := 300 RecCol := 300 RecAngle := rad(0)* 生成一個矩形 gen_rectangle2 (rectangle, RecRow, RecCol, RecAngle, 100, 1)* 仿射變換偏移角度(旋轉角度45度) set_color (200000, 'green') hom_mat2d_identity (HomMat2DIdentity) hom_mat2d_rotate (HomMat2DIdentity, rad(45), RecRow, RecCol, HomMat2DRotate) affine_trans_region (rectangle, RegionAffineTransP, HomMat2DRotate, 'nearest_neighbor')* 仿射變換偏移角度(旋轉角度-45度) set_color (200000, 'white') hom_mat2d_identity (HomMat2DIdentity) hom_mat2d_rotate (HomMat2DIdentity, rad(-45), RecRow, RecCol, HomMat2DRotate) affine_trans_region (rectangle, RegionAffineTransN, HomMat2DRotate, 'nearest_neighbor')二、算子gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : )角度問題
輸入參數Phi為弧度制,1度對應的弧度為0.0174533,1弧度對應角度為57.2958度。正常情況下大家喜歡用角度來描述旋轉度數,因為角度更直觀,符合正常思維。但如果直接用角度賦值Phi,效果會超出的你的想象,因為這個算子你給的值它默認為弧度,所以,如果想用角度來表示更直觀,需要將角度轉換為弧度,只需要rad(angle)轉換一下即可。
算子gen_rectangle2角度范圍為- 90 < angle <= 90,如果強制給的角度超出這個范圍,程序也不會報錯。事實上Halcon內部將你給的超出范圍的角度轉換到這個范圍。
三、算子smallest_rectangle2(Regions : : : Row, Column, Phi, Length1, Length2)角度問題
1、首先 角度范圍- 90< angle <= 90,無論通過算子gen_rectangle2生成的Region角度多大,smallest_rectangle2獲取的角度都不會超出這個范圍。
2、算子smallest_rectangle2輸出的角度是通過計算Region長軸與X軸正方向夾角獲取,且角度不能超出限定范圍。
四、Halcon卡尺角度問題
關于卡尺的介紹,請參考我前面的博客內容https://blog.csdn.net/qq_18620653/article/details/106194813,這里不再描述。關于角度描述如下:
總結
以上是生活随笔為你收集整理的Halcon 关于角度问题的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity DOTS简明教程
- 下一篇: Halcon联合VS2010打开相机并显