【HALCON】median_weighted 関数について - 加重メディアンフィルタによる画像のノイズ除去

【HALCON】median_weighted 関数について - 加重メディアンフィルタによる画像のノイズ除去

2024-09-04

2024-09-04

HALCONmedian_weighted関数は、加重メディアンフィルタを使用して画像のノイズ除去を行うためのツールです。加重メディアンフィルタは、通常のメディアンフィルタと同様にノイズを除去しながらエッジを保持しますが、周囲のピクセルに重みを加えることで、フィルタリングの精度を高め、特定の領域の重要度を調整することが可能です。これにより、画像全体の滑らかさを向上させつつ、重要なディテールを保ちながらノイズを軽減します。

median_weighted 関数の概要

median_weighted関数は、各ピクセルを中心として周囲のピクセルに異なる重みを与えた加重メディアンフィルタを適用します。通常のメディアンフィルタが単純に周囲ピクセルの中央値を適用するのに対して、加重メディアンフィルタでは各ピクセルの影響力を重み付けして計算を行うため、フィルタの柔軟性が向上し、画像のエッジやディテールをより正確に保持できます。

この機能は、医療画像や工業検査など、高精度なノイズ除去が求められるシーンで特に効果を発揮します。

使用方法

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

median_weighted(Image, FilteredImage, MaskWidth, MaskHeight)
  • Image
    ノイズ除去を行う入力画像。
  • FilteredImage
    加重メディアンフィルタを適用した後の出力画像。
  • MaskWidth
    加重メディアンフィルタのマスクの幅(ピクセル単位)。
  • MaskHeight
    加重メディアンフィルタのマスクの高さ(ピクセル単位)。

具体例

以下に、median_weighted関数を使用して、画像のノイズを除去する例を示します。

* 画像を読み込む
read_image(Image, 'example_image.png')

* 加重メディアンフィルタを適用(長方形マスクの幅5、高さ5MaskWidth := 5
MaskHeight := 5
median_weighted(Image, FilteredImage, MaskWidth, MaskHeight)

* 結果を表示
disp_image(FilteredImage, WindowHandle)

この例では、example_image.pngという画像に対して、5x5ピクセルのマスクでmedian_weighted関数を適用しています。結果として、ノイズが軽減され、エッジを保持した状態で滑らかになった画像が生成されます。

応用例

median_weighted関数は、以下のような応用シーンで利用されます。

  • 医療画像処理
    医療画像のノイズ除去を行いながら、エッジや重要な組織のディテールを保持することで、診断精度を向上させます。

  • 工業検査
    製品の品質検査や画像解析において、ノイズを効果的に除去し、エッジや細部の形状を維持しながら精密な検査が可能です。

  • エッジ保持型平滑化
    画像のエッジを保持しながら滑らかにする必要がある場合、加重メディアンフィルタが有効です。特に、フィルタの重み付けにより、特定の領域を強調しつつノイズを除去できます。

まとめ

HALCONmedian_weighted関数は、加重メディアンフィルタを使用して、画像のノイズを除去しながらエッジやディテールを保持するための強力なツールです。このフィルタリング手法は、医療画像や工業検査など、正確なノイズ除去が必要な場面で特に有効です。重み付けにより、柔軟で精度の高い処理が可能となり、画像の品質を大幅に向上させます。

Recommend