【HALCON】median_rect 関数について - 長方形領域内でのメディアンフィルタ

【HALCON】median_rect 関数について - 長方形領域内でのメディアンフィルタ

2024-09-04

2024-09-04

HALCONmedian_rect関数は、画像の長方形領域内でメディアンフィルタを適用することで、ノイズ除去と平滑化を行うツールです。メディアンフィルタは、画像処理においてエッジを保持しながらノイズを除去する優れた手法で、特にエッジを強調したい画像や、医療画像の前処理などに使用されます。この関数は、長方形領域での平滑化を行うため、全体的な滑らかさを保ちながらもエッジを破壊せずにノイズを効果的に除去します。

median_rect 関数の概要

median_rect関数は、画像内の各ピクセルを取り囲む長方形領域内でメディアンフィルタを適用し、その領域内でのメディアン値をピクセルに置き換えます。この方法により、ランダムなノイズを除去しつつ、画像のエッジや細かいディテールが保持されます。通常の平均フィルタと異なり、エッジ部分をぼかさずにノイズを軽減できるため、エッジ検出の前処理や、画像のクリーンアップに適しています。

使用方法

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

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

具体例

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

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

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

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

この例では、example_image.pngという画像に対して、5x5ピクセルの長方形マスクでメディアンフィルタを適用しています。結果として、ノイズが軽減され、エッジを保持した状態で平滑化された画像が得られます。

応用例

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

  • ノイズ除去
    ランダムなノイズを含む画像からノイズを除去し、クリーンな画像を生成します。特に、ガウスノイズや塩胡椒ノイズに対して効果的です。

  • エッジ保持型平滑化
    画像のエッジを保持しながら平滑化を行うため、医療画像の処理や工業製品の検査において、エッジの破壊を防ぎながらノイズを除去します。

  • エッジ検出の前処理
    エッジ検出アルゴリズムの前に画像を平滑化することで、ノイズによる誤検出を減少させ、エッジ検出の精度を向上させます。

まとめ

HALCONmedian_rect関数は、長方形領域でのメディアンフィルタを使用して、ノイズを除去しながら画像を平滑化するための便利なツールです。この関数を使用することで、画像のエッジを保持しつつノイズを軽減でき、特にエッジが重要な画像処理において非常に有用です。医療画像や工業検査における精密な画像処理が求められるシーンで、その効果を発揮します。

Recommend