自 halcon之屌炸天的自標定(1)發出之後,有朋友看了文章也應用到了本身的測量項目中,效果奇好,成功搞定了20um的需求,可喜可賀。算法
在halcon之屌炸天的自標定(1)中我提到了一片論文:
T. Thormälen, H. Broszio: 「Automatic line-based estimation of radial lens distortion」; in: Integrated Computer-Aided Engineering; vol. 12; pp. 177-190; 2005.
google了很久都是收費不能下載,有位朋友看到後幫我下載了,感謝。
因此本次就介紹下這篇論文:瞭解一下具體原理,這樣用起來更駕輕就熟。
計算畸變係數的流程:
- 1.輪廓檢測,找出知足條件的線段,至關於halcon的 edge_sub_pix + segment_contour_xld
- 2.共線線段鏈接,至關於halcon的 union_collinear_contours_xld
- 3.取出干擾線,就是去除在現實中不是直線的線段,能夠用halcon中的select_contour_xld
- 4.求畸變參數,至關於halcon的 radial_distortion_self_calibration
論文中計算畸變係數的方法:
設置ru 爲無畸變座標點,rd爲畸變後坐標點,k爲畸變係數,二者關係式可用泰勒公式表示 (式一、二、3)
而後論文中又指出,實驗標明k3,k5對畸變影響最大,其餘k影像甚微,因而就把其餘K項去掉變成了
因此計算畸變係數是否精確的關鍵就在ru rd 的選取上,坐着給出下圖來解釋,共線鏈接後長線段更能反應畸變狀況,以此說明步驟2的必要性。
隨後做者用RANSAC算法進一步過濾干擾線,並用實驗標明RANSAC的好處。
說了這麼可能是不是有點暈暈的?要想了解夠透徹仍是要下載論文仔細閱讀額~
關注微信:halconhub,每日獲取halcon精華文章