ノイズ除去と評価
ノイズは画像の視覚的な品質を低下させることがあり、処理演算(閾値の設定、ハイパスフィルタ処理)によってはノイズが許容できないほど強調されます。 通常、画像はノイズを含む状態で取り込まれます(このことは、ライブ画像でピクセル値が本来の輝度周辺で変動していることで確認できます)。 8ビット精度で画像を取り込んだ場合、ノイズレベルは一般的に3~ 5グレーレベル値になります。 ノイズにはさまざまな形態があります:
- 加法性:ノイズの振幅は画像の内容に無関係です
- 乗法性:ノイズの振幅は局所的な輝度と比例します
- 均一性:ノイズの振幅はゼロ付近を中心とする滑らかな分布になります
- インパルス性:ノイズの振幅に際限はありません
インパルス性ノイズでは「ごま塩」ノイズが現れ、均一性ノイズはは混ぜ合わされます。

均一性ノイズとインパルス性ノイズが除去されますが、エッジがぼやけた感じになります。
実際の信号の変化とノイズを区別できないため、常に一部の信号が考慮されません。
近傍ピクセル値の相関を用いてコンボリューションまたはメディアンフィルタ処理を実行します:
- コンボリューションでは、局部的な平均化処理により近傍ピクセルを組み合わせた値で各ピクセルの値が置き換えられます。 均一ノイズの抑制には線形フィルタを使用することを推奨します。 ただし、エッジがぼやける傾向がありますので気を付けてください。
ローパスフィルタ処理による均一ノイズの除去
- メディアンフィルタ処理では、近傍ピクセルの中央値(周囲を囲む3x3ピクセルの5番目の値)各ピクセルの値を置き換えます。 これによりインパルス性ノイズが除去され、画像の鮮鋭度も保持されます。

一時的なノイズ除去は、時間の経過とともに個々のピクセルの連続する値を組み合わせることで行います。 EasyImageでは循環的平均化と移動平均を実行できます。
EasyImageでは、複数の画像を使ってノイズを最小限に抑えるための3つの方法があります:
- 一時的な平均:下図にあるような標準の算術演算を用いてN枚の画像を累積し、平均化します。 N回の画像取り込みの後、平均値を用いてノイズが除去された画像を作成します。 ノイズはフレームごとに変化しますが、信号そのものは変化しません。そのため、同じ(静止)場面の画像が複数あれば、信号からノイズを取り除くことができます。
N回の取り込みの後でノイズが除去された画像が1枚だけ作成されるため、表示をすばやく更新できないことが短所となります。
簡単な平均化
- 一時的な移動平均:直近のN枚の画像を累積し、新しい画像が取り込まれるたびにノイズが除去された画像を更新します。その際、計算時間はNに応じて変化しません。この全プロセスはEMovingAverageによって処理されます。 この手法の短所は、ノイズを含む複数の画像が組み合わされることです。
移動平均
- 一時的な循環的平均:EasyImage::.RecursiveAverage を用いて、あらかじめノイズが除去されている画像とノイズを含む画像を組み合わせます。
循環的平均
循環的平均化
一時的な結合によってノイズを除去する、よく知られたプロセスです。 その原理は、ノイズを含む未処理のライブ画像ストリームを用いて、ノイズフリーの画像を混合することで連続的に更新するものです。 アルゴリズムは次のようになります:
DSTN=a*Src+(1-a)*DstN-1
このとき、aは混合係数です。 この係数の値は、指定されたノイズ除去率に達するように調整できます。
この処理は静止画像に適用する場合は効果的ですが、動くオブジェクトの場合は残像が生じます。 ノイズ除去率が大きいほど、残像は顕著になります。 これを回避するために、混合プロセスに非線形性を取り入れることができます:連続画像でのグレーレベル値の小さい変動は通常はノイズですが、大きい変動は画像自体の変化に相当します。
EasyImage::.RecursiveAverageではこれに注目し、小さい変動には強く、大きい変動には弱くノイズ除去機能が適用されるようになっています。 それにより、静止領域のノイズと動く領域の残像が除去されます。
パフォーマンスを向上するため、非線形性はEasyImage::.SetRecursiveAverageLUT関数を使用するときのために1度だけ事前計算しておく必要があります。
注記: EasyImage::.RecursiveAverageメソッドを初めて呼び出す前に、16ビットの作業画像を消去しておいてください(すべてのピクセル値をゼロに設定します)。

ノイズの量を評価するには、2~3枚の連続画像が必要です。 最も簡単な評価モードでは、ノイズを含む2枚の画像を比較します。 (他のモードもあります:ノイズフリーの画像がある場合は、その画像とノイズを含む画像が比較されます。一時的な平均化によってノイズフリーの画像を構築することもできます。)二乗平均平方根の振幅とSN比を計算します。
- EasyImage::.RmsNoiseは、対象の画像と参照画像を比較して、ノイズの二乗平均平方根の振幅を計算します。 この関数はフレキシブルマスクとマスク引数入力に対応しています。 BW8、BW16、C24ソース画像がサポートされています。
参照画像にはノイズフリーの画像(ノイズ源を取り除いて取得)または対象の画像と同じノイズ分布の画像を使用できます。 - EasyImage::.SignalNoiseRatioは対象の画像と参照画像を比較して、dB単位でSN比を計算します。 この関数はフレキシブルマスクとマスク引数入力に対応しています。 BW8、BW16、C24ソース画像がサポートされています。
参照画像にはノイズフリーの画像(ノイズ源を取り除いて取得)または対象の画像と同じノイズ分布の画像を使用できます。
信号の振幅とは、正方形ピクセルのグレーレベル値の合計です。
ノイズの振幅とは、対象の画像と参照画像のピクセルグレーレベル値の差の合計です。