影像型別
就目前工業領域主流的影像處理工具halcon來講,有以下幾種影像型別:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具體含義如下圖所示,
‘byte’ 每像素1位元組,無符號 值范圍: (0到255)
‘int1’ 每像素1位元組,有符號 值范圍: (-128到127)
‘uint2’ 每像素2位元組,無符號 值范圍: (0到65535)
‘int2’ 每像素2位元組,有符號 值范圍: (-32768到32767)
‘int4’ 每像素4位元組,有符號 值范圍: (-2147483648到2147483647)
‘int8’ 每像素8位元組,有符號(僅適用于x64系統)
‘real’ 每像素4位元組,浮點型別,6位有效十進制數字精度 值范圍: (-3.4e38到3.4e38)
‘complex’ real型別的兩個矩陣,向量
‘vector_field_relative’ real型別的兩個矩陣,向量
‘vector_field_absolute’ real型別的兩個矩陣,絕對坐標
‘direction’ 每像素1位元組,無符號 值范圍: (0到179),角度除以2
注意:數值180到254被自動設定為值255,
‘cyclic’ 每像素1位元組,無符號,回圈算術 范圍: (0到255)
轉換
halcon自轉換
相互間的轉換可通過convert_image_type算子完成,但盲目轉換會導致影像像素值例外,
但為什么要進行轉換呢?總結一下,有一下幾種原因:
1.如byte和unit2兩種都屬于無符號型別,如果涉及到影像相減操作的時候,就需要轉為有符號型別,生成真實值,
2.涉及到遍歷影像操作時,如果陣列的長度為長寬的積,且超過影像的像素位數最大值,會導致程式報錯,必須給陣列更大的空間,這就需要進行型別轉換,
3.如果高像素值的影像想轉為低像素值的影像,不能直接轉換,需通過scale_image算子先將影像像素進行尺度變換,
halcon轉C#型別
1.int,double,string,IntPtr
均通過Htuple型別的變數名加.I(),.D(),.S(),.IP()完成,
參考文章如下:
halcon最全影像型別格式介紹
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257719.html
標籤:其他
