HALCON中級篇:數據碼識別

數據碼

數據碼是一種特殊的用於編碼文本和數字的二維圖案,HALCON能夠讀大多數流行的數據碼:Data Matrix ECC 200, QR Code, Micro QR Code, Aztec Code,和PDF417。這些碼由所謂的定位圖案組成,其被用來定位圖案,並得到有關幾何屬性的基本信息。由於特殊的碼設計,碼本身包含了多個點或者小方塊,即使有些部分被弄亂,它們也能被解碼。

HALCON數據碼閱讀器的優勢就是它的易用性,沒有在編程或者圖像處理方面先進經驗的要求,僅僅是幾個清除簡單排序的算子的應用。還有,數據碼閱讀器是非常強且靈活的,其變現在能夠讀取許多打印風格的碼和自動學習最優化參數的可能性。

基本概念

條碼讀取由四個主要步驟組成,即獲取圖像、創建數據碼模型、運用感興趣區域、讀取數據碼、摧毀數據碼碼模型。

HALCON中級篇:數據碼識別

獲取圖像

對於在線部分,例如在僅僅讀取期間,圖像被獲取。

創建數據碼模型

首先,你可以用create_data_code_2d_mode去創建一個數據碼模型,這個模型提供有關碼結構所有必要信息的閱讀器。對於正常打印的碼,僅僅需要名字需要被提供,HALCON能夠選擇合適的默認參數。對於特殊的情況,通過傳入特定的參數來修改模型。

讀數據碼

去讀數據碼,僅僅需要一個算子:find_data_code_2d,它將定位一個或者多個數據碼並且解碼內容。

毀掉條碼模型

當你不在需要數據碼模型的時候,你可以用算子clear_data_code_2d_model去毀掉它。

第一個例子

作為基本概念的例子,這有一個讀芯片上數據碼的簡單程序。

從文件中讀取一張圖像後,調用算子create_data_code_2d_model產生一個數據碼模型。作為僅僅要求的參數值,碼名‘Data Matrix ECC 200’被指定。

HALCON中級篇:數據碼識別

然後,用算子find_data_code_2d去讀取數據碼。

HALCON中級篇:數據碼識別

在程序的最後,用算子clear_data_code_2d_model去毀掉創建的碼模型。

HALCON中級篇:數據碼識別

數據碼識別的效果圖為:

HALCON中級篇:數據碼識別


分享到:


相關文章: