二、Halcon數據類型
兩類參數:
1、圖形參數Iconic (image, region, XLD)
2、與控制參數Control (string, integer, real, handle),
在Halcon算子的參數中,依次為:輸入圖形參數、輸出圖形參數、輸入控制參數、輸出控制參數;並且其輸入參數不會被算子改變。
1、圖形參數Iconic:
(1)Images
在Halcon中,Image = Channel + Domain , 像素點存放在Channel矩陣中,根據ROI來描述Image。
Image相關操作:
輸入:從文件、從設備
生成:外部圖像數據、空內存區域;
顯示:disp_image()圖像首通道灰度圖;disp_color() 彩色圖;disp_channel()某特定通道;disp_obj() 自動判別類別;
縮放:set_part() 設置顯示區域;set_part_style() 設置顯示參數;
說明:
Ø Multiple channels //多通道圖像,可以是灰度圖像或RGB圖像
Ø Arbitrary region of interest //ROI區域圖像
Ø Multiple pixel types(byte, (u)int1/2/4,real, complex, direction, cyclic, vector_field)
byte, uint2 //灰度圖像的標准編碼
int1, int2 //Difference of two images or derivates with integer precision(??)int4 //兩幅灰度圖的頻譜
direction //圖片邊緣的梯度方向
real //邊緣提取及特定灰度值的輪廓
complex //圖片頻率分布
cyclic //Assigning one "gray" value to each color(??)
vector_field //連續圖形的光學流分布
(2)Regions
以行列坐標形式儲存,有廣泛的應用,特點是高效,可利用同態算子。比如用閾值對圖像分割的結果,其他系統中稱為BOLB,AREA等。
(3)Extended Line Description (XLD)
圖像均用像素點保存,而像素點是整型的,不連續的,Halcon做了拓展,定義了亞像素(subpixel)的描述幾何輪廓的對象:xld,主要用在亞像素測量的背景下,可用於如提取邊緣、構建輪廓等等,xld在模板匹配、圖形校准等多方面有重要的用途。
說明:
Subpixel accurate line and edge detection(亞像素精度的線和邊緣檢測)
Generic point list based data structure(依據數據結構產生點的表)
Handling of contours, polygons, lines, parallels, etc.(對輪廓,多邊形,線等進行操作)
2、控制參數Control:
String類型變量由單引號’括起來;此外還有一些特殊字符;
Boolean型變量包括 true ( = 1 )、 false ( = 0 ) ;不為零的整數將被認為true;但絕大多數的Halcon函數接受字符串型的表達:’true’‘false’,而非邏輯型表達;
此外,Halcon支持的類型還包括圖形元組、控制變量元組及句柄:
元組的概念,使得可以用一個變量傳遞數個對象,可以由重載后的函數來進行處理;圖形元組的下標從1開始,控制變量元組下標從0開始;句柄則可以用來描述窗體、文件等等,句柄不能是常量。