【HALCON】min_image 関数について - 最小値フィルタによる画像の平滑化
2024-09-04
2024-09-04
HALCON
のmin_image
関数は、画像に対して最小値フィルタを適用し、ノイズ除去や平滑化を行うためのツールです。最小値フィルタは、指定されたマスク範囲内で最小のピクセル値を基にして各ピクセルの値を更新します。この処理は、特に白いノイズ(高輝度のノイズ)を効果的に抑えることができるため、医療画像や工業画像など、精度が求められる分野で使用されます。
min_image 関数の概要
min_image
関数は、画像の各ピクセルに対して、その近傍のピクセルの中で最小値を選択し、その最小値でピクセルを置き換えるフィルタ処理を行います。この処理により、輝度が高い部分や白いノイズが効果的に除去され、画像が平滑化されます。最小値フィルタは、通常の平滑化フィルタとは異なり、白いノイズに特化して抑制するため、特定の種類のノイズ除去に優れています。
使用方法
基本的なmin_image
関数の使用方法は以下の通りです。
min_image(Image, FilteredImage, MaskWidth, MaskHeight)
Image
ノイズ除去を行う対象の入力画像。FilteredImage
最小値フィルタ適用後の出力画像。MaskWidth
最小値フィルタのマスクの幅(ピクセル単位)。MaskHeight
最小値フィルタのマスクの高さ(ピクセル単位)。
具体例
以下に、min_image
関数を使用して画像のノイズを除去し、平滑化する例を示します。
* 画像を読み込む
read_image(Image, 'example_image.png')
* 最小値フィルタを適用(マスクサイズ:5x5ピクセル)
MaskWidth := 5
MaskHeight := 5
min_image(Image, FilteredImage, MaskWidth, MaskHeight)
* 結果を表示
disp_image(FilteredImage, WindowHandle)
この例では、example_image.png
という画像に対して、5x5ピクセルのマスクサイズで最小値フィルタを適用しています。この処理により、特に白いノイズが抑制され、滑らかになった画像が生成されます。
応用例
min_image
関数は、以下のような応用シーンで利用されます。
-
白いノイズ除去
医療画像や工業検査画像など、白いノイズが多く含まれる画像で、ノイズを除去しながらエッジを保持したい場合に使用されます。 -
エッジ検出の前処理
エッジ検出アルゴリズムを実行する前に、ノイズ除去を行うことで、検出精度を向上させます。 -
輝度制御
輝度が高い部分やハイライトを抑えるために、最小値フィルタを使用して画像の明るい部分を低減し、全体のバランスを取ることができます。
まとめ
HALCON
のmin_image
関数は、最小値フィルタを使用して、特に白いノイズを除去し、画像の平滑化を行うための強力なツールです。輝度の高い部分を抑えつつ、ノイズを効果的に除去するため、医療画像や精密な画像処理が必要なシーンで非常に有用です。エッジやディテールを保持しながら、ノイズを除去できるため、品質の高い画像処理が可能になります。