Halcon中的坐標系特點及XLD的鏡像轉換
阿新 • • 發佈:2017-08-31
般的 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的鏡像轉換