1. 程式人生 > >Halcon中的坐標系特點及XLD的鏡像轉換

Halcon中的坐標系特點及XLD的鏡像轉換

般的 not 根據 兩個 tours 坐標系 raw div gin

我們知道,Halcon中的坐標系的原點在左上角,而一般二維平面坐標系的原點在左下角。那麽Halcon中坐標系和一般的二維坐標系有什麽區別你?我通過下面這個例子來分析。

 1 gen_image_const (Image, byte, 512, 512)
 2 dev_set_draw (margin)
 3 
 4 *點1
 5 gen_circle (Circle1, 10, 10, 3)
 6 disp_message (3600, (10 ,10), image, 2, 18, white, false)
 7 *點2
 8 gen_circle (Circle2, 100, 200
, 3) 9 disp_message (3600, (100 ,200), image, 92, 208, white, false) 10 *點3 11 gen_circle (Circle3, 400, 100, 3) 12 disp_message (3600, (400 ,100), image, 392, 108, white, false) 13 14 union2 (Circle1,Circle2, RegionUnion) 15 union2 (RegionUnion,Circle2, RegionUnion) 16 union2 (RegionUnion,Circle3, RegionUnion)
17 gen_contour_region_xld (RegionUnion, Contours, border) 18 write_contour_xld_dxf (Contours,C:/Users/happy xia/Desktop/XLD的鏡像變換/threePoint.dxf)

這三個點在Halcon中的位置如下圖:

技術分享

上面的程序最終生成了一個名為threePoint.dxf的文件。我用文本查看器(notepad++、記事本等)打開查看它的數據:

技術分享

紅框中“10”下面的數據代表點的x值,“20”下面的數據代表點的y值,即截圖裏有兩個點(98.5, 396.5)、(99.5, 396.5),這兩個點都是XLD圓上的點,很明顯這兩個點所在圓的圓心坐標是(100, 400)。但是我們看最開始的那張圖,發現只有點(400, 100),並沒有點(100, 400)!

根據上面的事實現象,我們不難發現Halcon中的坐標系實際是這樣的:

技術分享

根據導出的dxf文件中的坐標點反推,之前的那張圖的坐標實際上是這樣的:

技術分享

這兩個坐標系的區別如下圖。不難看出,它們是上下鏡像的關系。

技術分享

Halcon中的坐標系特點及XLD的鏡像轉換