【HALCON】median_separate 関数について - 個別チャンネルのメディアンフィルタ適用

【HALCON】median_separate 関数について - 個別チャンネルのメディアンフィルタ適用

2024-09-04

2024-09-04

HALCONmedian_separate関数は、カラー画像の各色チャンネルに対して個別にメディアンフィルタを適用し、ノイズ除去と平滑化を行うためのツールです。これにより、色のディテールを保ちながら、画像全体のノイズを軽減できます。特に、カラー画像に含まれるランダムなノイズを効率的に除去し、鮮明な画像を維持したい場合に有効です。

median_separate 関数の概要

median_separate関数は、カラー画像の各色チャンネル(例:RGB)のそれぞれにメディアンフィルタを個別に適用することで、画像のノイズを効果的に除去します。メディアンフィルタは、周囲のピクセルの中央値で各ピクセルの値を置き換えるフィルタリング手法であり、エッジを保ちながらノイズを抑制できるため、画像の重要な特徴を保持しながら滑らかな結果が得られます。

カラー画像の場合、RGBチャンネルの情報が個別に処理されるため、色のディテールが保たれ、色の変化が少ない領域でも精度の高いノイズ除去が可能です。

使用方法

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

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

具体例

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

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

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

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

この例では、example_color_image.pngというカラー画像に対して、3x3ピクセルのマスクでmedian_separate関数を適用しています。これにより、色情報を保持した状態でノイズが除去され、滑らかになった画像が生成されます。

応用例

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

  • カラー画像のノイズ除去
    カラー画像に特有のランダムなノイズを除去しつつ、RGBチャンネルの色情報を正確に保ちながら、画像を平滑化します。

  • エッジ保持型フィルタリング
    メディアンフィルタはエッジを保持しながらノイズを除去するため、画像処理においてエッジの情報を保ちつつ、滑らかな結果を得たい場合に効果的です。

  • 医療画像や工業画像処理
    カラー画像に対するノイズ除去が重要なシーンで、例えば医療画像の解析や製品の品質検査などにおいて有用です。

まとめ

HALCONmedian_separate関数は、カラー画像の各色チャンネルに個別にメディアンフィルタを適用して、ノイズ除去と平滑化を行うための強力なツールです。この関数を使用することで、色のディテールを保持しながらノイズを効果的に除去でき、鮮明でクリーンな画像を生成することが可能です。特に、色の変化が少ない領域でも高精度な処理が求められる画像に適しています。

Recommend