【HALCON】find_1d_bar_code_region 関数について - 特定領域内の1Dバーコードの検出と読み取り
2024-09-04
2024-09-04
HALCON
のfind_1d_bar_code_region
関数は、指定された領域内で1Dバーコードを検出し、内容を読み取るためのツールです。この関数を使用することで、画像全体を処理するのではなく、特定の領域に限定してバーコードの検出と読み取りを行うことができ、処理の効率化や精度向上が期待できます。
find_1d_bar_code_region 関数の概要
find_1d_bar_code_region
関数は、入力画像の中で指定された領域に限定して1Dバーコードを検出し、内容を読み取ります。この領域指定により、不要な部分を排除し、必要な情報だけを効率的に処理することができます。例えば、大きな画像の中でバーコードが存在する可能性の高い特定のエリアのみをターゲットにする場合などに有効です。
使用方法
find_1d_bar_code_region
関数の基本的な使用方法は以下の通りです。
find_1d_bar_code_region(Image, Region, SymbolName, BarCodeHandle, CodeType, DecodedData)
Image
検出と読み取りを行う対象の画像。Region
バーコードを検出する領域を指定します。SymbolName
検出されたバーコードのシンボル名が格納される変数。BarCodeHandle
バーコード検索用のハンドル。CodeType
読み取るバーコードの種類(例: ‘EAN13’, ‘CODE128’ など)。DecodedData
読み取られたバーコードの内容が格納される変数。
具体例
以下に、find_1d_bar_code_region
関数を使用して、特定の領域内で1Dバーコードを検出し、読み取る例を示します。
* 画像の読み込み
read_image(Image, 'barcode_example_image')
* バーコードが存在する可能性のある領域の定義
gen_rectangle1(Region, 100, 100, 300, 400)
* バーコード検索用ハンドルの生成
create_bar_code_model(BarCodeHandle)
* 指定領域内での1Dバーコードの検出と読み取り
find_1d_bar_code_region(Image, Region, SymbolName, BarCodeHandle, 'EAN13', DecodedData)
* 結果の表示
disp_message(WindowHandle, 'Decoded Data: ' + DecodedData, 'window', 12, 12, 'black', 'true')
この例では、入力画像内の指定された矩形領域(Region
)内に存在する1Dバーコード(EAN13形式)を検出し、その内容を読み取ります。読み取られたバーコードのデータはDecodedData
変数に格納されます。
応用例
find_1d_bar_code_region
関数は、以下のようなシナリオで特に有用です。
- 産業オートメーション
生産ラインで、製品の特定部分に存在するバーコードをターゲットにして読み取ります。 - 物流
パッケージの特定の領域に配置されたバーコードを効率的に読み取ります。 - 製品検査
製品の一部領域に付けられたバーコードをターゲットにして検出し、製品の品質管理やトレーサビリティを強化します。特に、大量の製品が流れる中で効率的にバーコードを読み取ることが求められる場面で役立ちます。 - 在庫管理
倉庫での在庫管理時に、特定の棚やエリアに絞ってバーコードをスキャンすることで、処理時間を短縮し、在庫の追跡を効率化します。 - パレットやコンテナの管理
パレットやコンテナに貼られたバーコードが複数存在する場合、特定のエリアに限定して検出・読み取りを行い、管理業務の精度を向上させます。
まとめ
HALCON
のfind_1d_bar_code_region
関数は、指定された領域内で1Dバーコードを効率よく検出・読み取るためのツールです。画像全体を処理するのではなく、特定の領域に限定することで、処理時間を短縮しつつ、精度を高めることができます。特に、産業オートメーションや物流、製品検査など、正確かつ迅速なバーコードの読み取りが求められるシーンで非常に有用です。