Java OpenCV Lv3 〜画像に中央値フィルタ(medianBlur())〜

イントロダクション

前回、OpenCVを使ってイメージファイルから、文字列を取得するのを目標にOpenCVを学んできます。文字列を読み込むまでに機械学習も学ぶ(倒す)必要があるのでまずは、目の前の敵を倒します。今日の敵は「中央値フィルタ」

参考サイトはこちらです。そしてJavaDocAPI

実装

前回作成したコードの1行を変えるだけで実装は完了します。

/**
 * メインメソッド、書き方は決まっている。
 * イメージファイルを読み込んでぼかす Imgproc.blur()
 * 
 * @param argsプログラム引数
 */
public static void main(String[] args) {
	// ファイルの読み込み
	Mat mat = Imgcodecs.imread(
		OpenCVTest2.class.getClass().getResource("/images/Experience.png").getPath());
	// 出力用変数
	Mat source = new Mat();
	// ブラーする、種知力用の変数に値をセットする→「参照渡し」
	//Imgproc.blur(mat, source, new Size(2.0,2.0));
	// 中央値フィルタ
	Imgproc.medianBlur(src, dst, 7);
	// 自作のJFrame拡張クラス
	new ViewFrame(source);
}

上のコード赤字の部分が追加した行です。

<実行結果>



ま塩ノイズのような特異なノイズに対して効果的です.カーネルサイズは奇数でなければいけません

1行変えただけですからね(笑)。

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseにCDTをインストール〜
  3. Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)