【HALCON】rank_image 関数について - 画像のランクフィルタリング
2024-09-12
2024-09-12
HALCON
のrank_image
関数は、画像に対してランクフィルタリングを適用し、ノイズ除去やエッジ強調を行うためのツールです。この関数を利用することで、特定のランクに基づいてピクセル値を調整し、滑らかでノイズの少ない画像を生成することができます。ランクフィルタは、特に画像の平滑化やエッジ保持に有効なフィルタリング技術です。
rank_image 関数の概要
rank_image
関数は、指定されたランクに基づいて周囲のピクセル値を処理し、画像をフィルタリングします。例えば、中央値フィルタや最大値フィルタなど、さまざまなランク値を指定することで、異なるタイプのフィルタリング効果を得ることが可能です。この関数は、画像内の不要なノイズを除去しつつ、重要なエッジ情報を保持するために広く使用されています。
使用方法
基本的な使用方法は以下の通りです。
rank_image(Image, FilteredImage, MaskWidth, MaskHeight, Rank)
Image
フィルタリング対象の入力画像。FilteredImage
出力されるフィルタリング後の画像。MaskWidth
フィルタリングに使用するマスクの幅。MaskHeight
フィルタリングに使用するマスクの高さ。Rank
使用するランク値。中央値フィルタであれば、ランク値は0.5
(50%)となります。最小値フィルタでは0
、最大値フィルタでは1
が指定されます。
具体例
以下に、rank_image
関数を使用して画像に中央値フィルタを適用する例を示します。
* 画像の読み込み
read_image(Image, 'input_image')
* 中央値フィルタを適用(ランク値0.5)
rank_image(Image, FilteredImage, 5, 5, 0.5)
* フィルタリング結果を表示
disp_image(FilteredImage, WindowHandle)
この例では、入力画像に対してランク値0.5
(中央値フィルタ)を使用し、フィルタリングを行っています。結果として、ノイズが除去された滑らかな画像が生成され、ウィンドウに表示されます。
応用例
rank_image
関数は、以下のような場面で非常に有用です。
-
ノイズ除去
画像内のランダムなノイズを効果的に除去し、平滑化を実現します。特に、ランク値0.5
(中央値フィルタ)は、スパイクノイズやガウスノイズの除去に適しています。 -
エッジ強調
ランク値を調整することで、画像のエッジを強調しつつ、不要なノイズのみを除去することが可能です。 -
エッジ保護平滑化
平滑化によってエッジが損なわれるのを防ぎながら、画像全体を滑らかに処理します。
まとめ
HALCON
のrank_image
関数は、画像のランクフィルタリングを効率的に実行するためのツールで、ノイズ除去やエッジ保持を必要とするさまざまな画像処理タスクに適しています。ランク値の調整によってフィルタリングの効果を制御できるため、幅広い応用が可能です。エッジを維持しつつ、ノイズを軽減する必要があるシーンでは、この関数が強力な解決策を提供します。