【HALCON】find_1d_bar_code_scanline 関数について - スキャンラインを使用した1Dバーコードの検出と読み取り
2024-09-04
2024-09-04
HALCON
のfind_1d_bar_code_scanline
関数は、スキャンラインを使用して1Dバーコードを検出し、内容を読み取るためのツールです。スキャンラインは、画像内の特定のラインに沿ってデータを取得する方法で、画像全体を解析する必要がないため、高速で効率的なバーコード検出と読み取りが可能です。この関数は、産業オートメーションや物流など、迅速なバーコード読み取りが求められるシナリオで特に有効です。
find_1d_bar_code_scanline 関数の概要
find_1d_bar_code_scanline
関数は、画像内の指定されたスキャンライン上で1Dバーコードを検出し、読み取ります。スキャンラインを使用することで、画像全体を処理することなく、特定のライン上の情報に焦点を当てて処理を行うことができます。これにより、処理時間が短縮され、効率的なバーコード検出が可能になります。
使用方法
find_1d_bar_code_scanline
関数の基本的な使用方法は以下の通りです。
find_1d_bar_code_scanline(Image, Row, Column, BarCodeHandle, CodeType, DecodedData)
Image
バーコードを検出する対象の画像。Row
スキャンラインの行座標を指定します。Column
スキャンラインの列座標を指定します。BarCodeHandle
バーコード検索用のハンドル。CodeType
読み取るバーコードの種類(例: ‘EAN13’, ‘CODE128’ など)。DecodedData
読み取られたバーコードの内容が格納される変数。
具体例
以下に、find_1d_bar_code_scanline
関数を使用して、スキャンライン上で1Dバーコードを検出し読み取る例を示します。
* 画像の読み込み
read_image(Image, 'barcode_example_image')
* スキャンラインの定義
Row := 200
Column := [0, 640]
* バーコード検索用ハンドルの生成
create_bar_code_model(BarCodeHandle)
* スキャンライン上での1Dバーコードの検出と読み取り
find_1d_bar_code_scanline(Image, Row, Column, BarCodeHandle, 'EAN13', DecodedData)
* 結果の表示
disp_message(WindowHandle, 'Decoded Data: ' + DecodedData, 'window', 12, 12, 'black', 'true')
この例では、画像内の指定されたスキャンライン(Row = 200
)上で1Dバーコード(EAN13形式)を検出し、その内容を読み取ります。読み取られたバーコードのデータはDecodedData
変数に格納されます。
応用例
find_1d_bar_code_scanline
関数は、以下のようなシナリオで特に有用です。
- 産業オートメーション
生産ラインで、製品の一部に沿ってバーコードを効率的に検出・読み取りするシステムに使用されます。 - 物流
コンベア上を流れるパッケージの特定のライン上に配置されたバーコードを迅速に読み取ります。 - 製品検査
製品の特定部分のスキャンラインに基づき、バーコードを検出し、内容を確認します。
まとめ
HALCON
のfind_1d_bar_code_scanline
関数は、スキャンラインを使用して1Dバーコードを効率的に検出・読み取りするための強力なツールです。この関数を活用することで、画像全体を解析することなく、特定のラインに焦点を当てた高速なバーコード処理が可能になります。