【Opencv 1日練習】medianBlur

2036 ワード

medianBlur
MedianBlur関数は、srcから入力されたピクチャをスムーズ(ぼかし)処理するために中値フィルタを使用し、結果はdstから出力される.
また、マルチチャネルピクチャについては、各チャネルが個別に処理され、その場での操作(In-placeoperation)がサポートされる.
 
関数のプロトタイプ:
C++: void medianBlur(InputArray src, OutputArray dst, int ksize)

パラメータの詳細:
  • 最初のパラメータ、InputArrayタイプのsrc、関数の入力パラメータ、1、3または4チャネルのMatタイプの画像を記入します.ksizeが3または5の場合、画像の深さはCV_8U,CV_16 U、またはCV_32 Fのうちの1つであるが、比較的大きな開口寸法のピクチャについては、CV_のみである8U.
  • の2番目のパラメータ、OutputArrayタイプのdst、すなわちターゲット画像、関数の出力パラメータは、ソースピクチャと同じサイズとタイプが必要です.Mat::Cloneを使用して、ソースピクチャをテンプレートとして、偽のパケット交換のようなターゲットマップを初期化することができます.
  • の3番目のパラメータ、intタイプのksize、孔径の線形寸法(aperture linear size)、このパラメータは1より大きい奇数でなければならないことに注意してください.例えば、3、5、7、9...
  • メジアンフィルタリング(Median filter)は、典型的な非線形フィルタリング技術である、この画素点の階調値の代わりに画素点近傍の階調値の中値を用いることを基本思想とし、パルスノイズ、パプリカ塩ノイズを除去するとともに画像エッジの詳細を保持することができる.
    中値フィルタリングは、並べ替え統計理論に基づくノイズを効果的に抑制できる非線形信号処理技術であり、その基本原理は、デジタル画像やデジタルシーケンスにおける一点の値を、その点の1つの隣接領域における各点値の中値に代えて、周囲の画素値を真実値に近づけることで、孤立したノイズ点を除去することであるスペックルノイズ(speckle noise)とピーマン塩ノイズ(salt-and-pepper noise)は、隣接領域内の典型的な値と大きく異なる値に依存しないため、特に有用である.中値フィルタは、連続画像窓関数を処理する際に線形フィルタの動作方式と類似しているが、フィルタリング過程は重み付け演算ではない.
    中値フィルタリングは、一定の条件下で、最小平均二乗フィルタ、ブロックフィルタ、平均フィルタなどの一般的な線形フィルタによる画像細部のぼやけを克服することができ、パルス干渉のフィルタリングや画像走査ノイズのフィルタリングに非常に有効であり、エッジ情報の保護にもよく用いられ、エッジの特性を保存してエッジのぼやけが発生したくない場合にも有用である.非常に古典的なスムーズノイズ処理方法です.
     
    ●中値フィルタと平均フィルタの比較
    中値フィルタと平均フィルタの比較の利点:平均フィルタではノイズ成分が平均計算に入れられるため、出力はノイズの影響を受けるが、中値フィルタではノイズ成分が選択しにくいため、出力にほとんど影響を及ぼさない.従って、同様に3 x 3領域で処理すると、中値フィルタリングによるノイズ除去能力がより優れている.中値フィルタリングはノイズの除去においてもエッジの保存においても良い方法である. 
    中値フィルタと平均フィルタの比較の劣勢:中値フィルタにかかる時間は平均フィルタの5倍以上である.
     
     
    その名の通り、中間値フィルタリングは、各画素の近傍画素の中間値を出力として選択するか、あるいは、中間値フィルタリングは、各画素点の階調値を、その点のある近傍ウィンドウ内のすべての画素点の階調値の中央値に設定する.
    例えば、3 x 3の関数窓をとり、点[i,j]を中心とした関数窓画素の中値を算出するには、以下のようにする.
    (1)強度値の大きさで画素点を配列する.
    (2)ドット[i,j]の新しい値としてソート画素セットの中間値を選択する.
     
    呼び出しコード:
    medianBlur(src,dst,7);

    本文の内容は転載です.
    http://blog.csdn.net/poem_qianmo/article/details/23184547