画像を平滑化する(ぼかす)medianBlur

画面を平滑化する つまり 画面をぼかす方法には色々な手法が準備されています。
medianBlurメソッドは、メディアンフィルターここを参照)を用いてぼかしを行います。
static void medianBlur(Mat src, Mat dst, int ksize)
Mat src : 変換元Mat
Mat dst : 変換後ぼかした結果
int ksize : 正の奇数を指定し、ksize*ksizeの領域内の濃度値をもとに平滑化を行います。
この値を大きくすると ぼかしが強くなります。
 1の場合には変化しません。(1ピクセルの平均値を求めても意味ないです・・・笑い)

ksizeが 3,5の場合は srcのCvTypeは “CV_8U”, “CV_16U”, “CV_32F”が処理可能で 7以上の場合は “CV_8U”のみ処理可能です。

 実行結果 

上段:元画像
中段:Imgproc.medianBlur(mat, mat2, 9);
下段:Imgproc.medianBlur(mat, mat3, 19);
 ksizeを2倍大きくするとぼかしがかなり強くなります。

ksizeが7以上の場合は “CV_8U”のみ処理可能ですが mat.type().toString()で元画像のCvTypeを調べたところ “CV_8U”でした。もし違っていれば 変換処理が必要です。
javadocによると関連項目に org.opencv.core.Matに convertTo というメソッドがあって それを使えば良さそうなのですが どこにも見つかりません。あっそっかcvtColorでやりゃいいのか・・・・

 by Android2.2 with OpenCv 2.3.1 for Android   
スポンサーリンク
Rectangle大広告
Rectangle大広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする