Halcon基础知识:常规数据、对象数据、对象元组
一、說明
????????halcon到底有多少數據類型,這是一個相當重要的知識;初學者如果看了幾十個程序案例,自然對此感興趣。本文將介紹兩種數據:常規數據,對象數據;以及出現的機會,1)程序一般處理過程,2)調用函數的參數傳遞;
二、常規數據
2.1 常規數據的類型
byte,? ---? 8位無符號數,標準灰度圖像的標準編碼,基本用于顯示,不用于計算。
uint2, ---? 16位無符號;標準的灰度圖像會用這種類型
int1,? ? ?----? 8位有符號;兩幀圖像的差異會用這種類型
?int2 , ---- 16位有符號;兩幀圖像的差異會用這種類型
int4 ,? ----- 32位有符號數,兩幅灰度圖的頻譜會用到這種類型;
direction ----8位無符號;圖片邊緣的梯度方向;邊緣梯度會用這種類型;
real? -----32位浮點類型,邊緣提取及特定灰度值的輪廓會用到這種類型;
complex ----實數對,每個像素用2個real值;用頻率表示圖像用這種類型;圖片頻率分布
cyclic -----8位無符號;給每個顏色分配灰度值
vector_field ----雙通道的實數圖像,描述X或者Y方向的運動;連續圖形的光學流分布。
2.2 常規數據特點
????????是數據的最小單元,一般不可分(vector_field 除外)。1 對象數據內包含常規數據 2 函數參數傳遞時有常規數據 3 元組內包含常規數據
三、對象數據
3.1 圖像對象Image
在Halcon中,Image = Channel +?Domain(定義域)?, 像素點存放在Channel矩陣中,根據ROI來描述Image。
Image相關操作:
輸入:從文件、從設備
生成:外部圖像數據、空內存區域;
顯示:disp_image()圖像首通道灰度圖;disp_color() 彩色圖;disp_channel()某特定通道;disp_obj() 自動判別類別;(用dev_display也行)
縮放:set_part() 設置顯示區域;set_part_style() 設置顯示參數;
要點說明:
- ?多通道圖像,可以是灰度圖像或RGB圖像 --Multiple channels //
- ROI區域圖像,Arbitrary region of interest //
- 像素是多數據類型的,這一點很重要,比如傅里葉變換后的復數圖像;(int1/2/4,real, complex, direction, cyclic, vector_field)
另外,多種圖片類型間使用convert_image_type算子進行轉換:
- convert_image_type(Image:ImageConverted:NewType:)
作用:轉換圖像數據類型,默認讀取的圖像時byte類型,此算子能轉換成real(實數)圖像數據類型。數據類型支持很多NewType:'int1''int2''unit2''unit4''int8''byte''real''direction''cyclic''complex'
3.2 區域對象Regions
以行列坐標形式儲存,有廣泛的應用,特點是高效,可利用同態算子。比如用閾值對圖像分割的結果,其他系統中稱為BOLB,AREA等。
3.3 輪廓線對象 (XLD) Extended?Line?Description
圖像均用像素點保存,而像素點是整型的,不連續的,Halcon做了拓展,定義了亞像素(subpixel)的描述幾何輪廓的對象:xld,主要用在亞像素測量的背景下,可用于如提取邊緣、構建輪廓等等,xld在模板匹配、圖形校準等多方面有重要的用途。
說明:
- 亞像素精度的線和邊緣檢測(Subpixel accurate line and edge detection)
- 依據數據結構產生點的表(Generic point list based data structure)
- 對輪廓,多邊形,線等進行操作(Handling of contours, polygons, lines, parallels, etc.)
四、 參數傳遞
4.1 halcon的函數數據類型兩大類
1、圖形對象參數(有叫圖標變量)Iconic?( image,?region,?XLD)
2、與控制參數Control?(string, integer, real, handle),
在Halcon算子的參數中,參數次序有約定。依次為:輸入圖形參數、輸出圖形參數、輸入控制參數、輸出控制參數;并且其輸入參數不會被算子改變。官方手冊對系統內算子的參數,要有明確說明,對參數表“x:y:x:y”要有解釋。同樣,自定義算子也需要約定好參數的順序。
4.2 控制參數Control
1? String類型變量由單引號’括起來;此外還有一些特殊字符;
2? Boolean型變量包括 true ( = 1 )、 false ( = 0 ) ;不為零的整數將被認為true;但絕大多數的Halcon函數接受字符串型的表達:’true’‘false’,而非邏輯型表達;
3 圖像元組:指用圖像obj構成的參量,圖形元組的下標從1開始
4 控制變量元組:是如下這個樣子的
? ? ? ? ? set_paint( WindowHandle, ['contourline',60,1] )? 控制變量元組下標從0開始;
5 句柄:句柄則可以用來描述窗體、文件等等,句柄不能是常量。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Halcon基础知识:常规数据、对象数据、对象元组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于雅可比迭代的Python实现
- 下一篇: 关于Gauss-Seidel迭代法的Py