【HALCON】wiener_filter_ni 関数について - フーリエ領域でのウィーナーフィルタ適用
2024-09-12
2024-09-12
HALCON
のwiener_filter_ni
関数は、フーリエ領域でウィーナーフィルタを適用して画像のノイズを除去するための関数です。フーリエ変換を活用することで、画像の空間領域におけるノイズ除去よりも高精度なフィルタリングを実現し、画像の品質を大幅に向上させることが可能です。この関数は、医療画像や天体写真など、非常に高いノイズ低減が求められる場面で特に有効です。
wiener_filter_ni 関数の概要
wiener_filter_ni
関数は、フーリエ領域でのウィーナーフィルタリングを適用して、画像のノイズを除去します。このフィルタは、フーリエ変換後に信号対ノイズ比(SNR)やノイズ対信号比(NSR)を考慮してフィルタリングを行い、画像の復元精度を高めます。特にノイズが顕著な画像に対して有効です。
使用方法
基本的な使用方法は以下の通りです。
wiener_filter_ni(Image, PSF, NSR, FilteredImage)
Image
入力画像。ノイズ除去を行う対象となる画像です。PSF
点拡散関数(Point Spread Function)。フィルタリングの基準となる関数です。NSR
ノイズ対信号比(Noise-to-Signal Ratio)。ノイズと信号の比率を指定します。FilteredImage
フィルタリングされた結果の画像。ノイズ除去が適用された画像がここに出力されます。
この関数は、フーリエ領域でのウィーナーフィルタリングを適用し、ノイズが抑えられた画像を出力します。
具体例
以下に、wiener_filter_ni
関数を使用してノイズ除去を行う例を示します。
* 画像の読み込み
read_image(Image, 'noisy_image')
* 点拡散関数(PSF)の設定
gen_gauss_pyramid(PSF, 5, 5, 0.5, 0.5)
* ノイズ対信号比の設定(0.01)
NSR := 0.01
* ウィーナーフィルタをフーリエ領域で適用
wiener_filter_ni(Image, PSF, NSR, FilteredImage)
* 結果の表示
dev_display(FilteredImage)
この例では、ノイズのある画像に対してウィーナーフィルタをフーリエ領域で適用しています。gen_gauss_pyramid
で生成された点拡散関数(PSF)を使用し、ノイズ対信号比(NSR)を0.01に設定してフィルタリングを行い、ノイズが除去された画像を表示しています。
応用例
wiener_filter_ni
関数は、以下のようなシナリオで特に有用です。
-
医療画像のノイズ除去
高精度が求められるCTスキャンやMRIなどの医療画像に対して、フーリエ領域でのウィーナーフィルタを使用し、ノイズを除去して画像の診断精度を向上させます。 -
天体写真のノイズ低減
長時間露光や低光量環境で撮影された天体写真に対して、ウィーナーフィルタを適用し、星や銀河の画像を鮮明にします。 -
工業検査の高精度画像解析
工業製品の検査において、フーリエ領域でのフィルタリングにより、製品表面の微細な欠陥を識別しやすくします。
まとめ
HALCON
のwiener_filter_ni
関数は、フーリエ領域でウィーナーフィルタを適用してノイズを除去するための強力なツールです。医療画像や天体写真、工業検査など、精密なノイズ低減が求められる場面で特に有効です。フーリエ変換を使用することで、通常のフィルタリングよりも高精度なノイズ除去を実現できます。