1. 程式人生 > >halcon學習筆記(10)——標定

halcon學習筆記(10)——標定

          攝像頭拍攝時候,影象均有畸變,但是影象的扭曲變形均是有規律的成線性的,所以可以通過演算法矯正。矯正的演算法可以在網上找到,這裡就敘述了。halcon標定過程需要在鏡頭內放置標定板;標定板一般選用30*30mm的;可以通過halcon程式來製作:

gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile :) 運算元來製作一個標定板

           XNum                               每行黑色標誌圓點的數量。

           YNum                               每列黑色標誌圓點的數量。

           MarkDist                           兩個就近黑色圓點中心之間的距離。單位是meter

           DiameterRatio                黑色圓點直徑與兩圓點中心距離的比值。

           CalTabDescrFile            標定板描述檔案的檔案路徑(.descr)。這兩個檔案路徑是用來存放檔案的

           CalTabPSFile                  標定板影象檔案的檔案路徑(.ps),

其中,.descr檔案為標定板描述檔案,.ps檔案為標定板圖形檔案,可以用photoshop(PS)開啟;


一個30*30的標準標定板的示例

1    gen_caltab(7,7,0.00375,0.5,'D:/30_30.descr','D:/30_30.ps')

2    黑色圓點行數:   7

3    黑色圓點列數:   7

4    外邊框長度:     30mm*30mm

5    黑色圓點半徑:   0.9375mm  (3.75/4)

6    圓點中心間距:   3.75mm

        標定過程可以同過halcon自帶的標定助手calibration來操作,具體:

1.開啟助手,選擇calibration;


2.在安裝選擇要選用的標定模板,一般caltab_30mm.descr,是30*30模板;

3.選擇標定標籤,選擇影象或者影象採集助手,自帶例子加.....MVTec\HALCON-11.0\examples\images\scratch;


4.載入好影象後設定參考位姿;


5.警告級別選擇70,即可,如果載入影象中有品質問題的請刪除;


6.標定即可;

7.插入程式碼,生成如下程式碼即可應用;


       應用方式可以參考如下程式碼:

read_image(Image,'pioneer')
dev_display (Image)
stop()
rgb1_to_gray(Image,GrayImage)

CamParOriginal:=[0.00219846,-78129.2,5.46495e-06,5.5e-06,318.206,236.732,640,480]
CamParVirtualFixed:=CamParOriginal
CamParVirtualFixed[1]:=0
*上面三條是標定時候的引數
gen_radial_distortion_map(MapFixed,CamParOriginal,CamParVirtualFixed,'bilinear')
*生產徑向畸變對映圖,
*mapfixed是輸出,
*CamParOriginal是標定後的引數,
*CamParVirtualFixed也是輸出的引數,
*'bilinear'對映型別
map_image(GrayImage,MapFixed,ImageRectifiedFixed)
*利用對映,消除影象畸變運算元
      處理的影象如下: