【HALCON】var_threshold 関数について - 変動しきい値による画像の二値化

【HALCON】var_threshold 関数について - 変動しきい値による画像の二値化

2024-09-12

2024-09-12

HALCONvar_threshold関数は、局所的なコントラストに基づいて自動的にしきい値を調整し、画像の二値化を行うための関数です。この関数を使用すると、照明条件やコントラストが異なる領域に対して適応的なしきい値処理が可能となり、均一な二値化が難しい画像でも正確な結果を得ることができます。

var_threshold 関数の概要

var_threshold関数は、画像内の局所的なウィンドウごとにコントラストを計算し、各領域に対して異なるしきい値を設定することで、画像全体を二値化します。これにより、明るさやコントラストが均一でない画像でも、各領域の特徴に応じた適切な二値化が可能です。

使用方法

基本的な使用方法は以下の通りです。

var_threshold(Image, Region, Width, Height, MinGray, MaxGray)
  • Image
    入力画像。
  • Region
    二値化された結果の領域(出力)。
  • Width
    局所的なしきい値計算に使用するウィンドウの幅。
  • Height
    局所的なしきい値計算に使用するウィンドウの高さ。
  • MinGray
    設定されるしきい値の下限。
  • MaxGray
    設定されるしきい値の上限。

この関数は、指定されたウィンドウサイズ内で各ピクセルの局所的なコントラストに基づいて、二値化のしきい値を動的に決定し、画像の異なる領域に適応させます。

具体例

以下に、var_threshold関数を使用して画像を二値化する例を示します。

* 入力画像を読み込み
read_image(Image, 'input_image')

* 変動しきい値を適用して画像を二値化
var_threshold(Image, BinaryRegion, 20, 20, 128, 255)

* 結果の二値化領域を表示
disp_region(BinaryRegion, WindowHandle)

この例では、入力画像Imageを読み込み、var_threshold関数を使って二値化しています。ウィンドウサイズは20x20ピクセル、しきい値の下限は128、上限は255に設定されています。結果は、二値化された領域BinaryRegionに格納され、表示されます。

応用例

var_threshold関数は、以下のようなシナリオで特に有用です。

  • 照明条件の変動が大きい画像の解析
    一定のしきい値では正確に二値化できないような、照明が不均一な画像に対して効果的です。

  • コントラストが異なる領域を持つ画像の二値化
    同じ画像内でも明るさやコントラストが異なる領域がある場合に、各領域に適応したしきい値設定が可能です。

  • 印刷品質検査
    用紙の反射や印刷の濃淡に影響されず、正確に文字や図形の境界を抽出できます。

まとめ

HALCONvar_threshold関数は、局所的なコントラストに基づいて動的なしきい値を設定し、画像を二値化するための強力なツールです。この関数を使用することで、均一なしきい値では処理が難しい画像に対しても、正確な二値化が可能となり、幅広い画像処理シナリオで利用できます。

Recommend