Java OpenCV Lv3 〜画像にガウシアンフィルタ(GaussianBlur())〜

イントロダクション

前回、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.GaussianBlur(mat, source, new Size(5, 5), 5.0);
	// 自作のJFrame拡張クラス
	new ViewFrame(source);
}

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

<実行結果>

見た目上、「何が違うの?」って感じですが、ボケ方が中心部と外側でボケ方が違います。

なんでも「注目画素との距離に応じて重みを変えるガウシアンカーネルを採用」するようで、白黒の雑音の除去に適しているようです。

簡単に終わってしまいました。

<余談>


DNSの設定が変わりWordPressにアクセスができなくなった経緯

昨日(2018/11/20)、このサイトにアクセスができなくなりました。

原因は、DNSの名前解決ができなくなっていたためです。

このブログをみてくれている人々にご迷惑をおかけしました。今後もブログを続けていくのでよろしくお願いいたします。

ちなみに、「DNSの名前解決ができなくなっていた」と記載しましたが経緯記載します。

  1. DNSにCNAMEレコードを追加
  2. 携帯で「zenryokuservice.com/wp」へのアクセスができなくなった
  3. 携帯で「takunoji.minim.ne.jp/wp」へのアクセスはできたが表示がいつもと違う
  4. 原因を探すが、わからないのでDNSプロバイダにログイン
  5. ネームサーバの名前が別のものに変わっていた

ここまでがブログにアクセスできなくなっていた原因でした。

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)

JavaDoc(クラスの使い方)

  1. JavaDoc 読解 〜 Filesクラス 〜
  2. Java Doc読解 BufferedReader
  3. Java Doc 読解〜BufferedWriter〜

OpenCv

  1. Java OpenCV 環境セットアップ(on Mac)
  2. Java OpenCv Lv1 〜入門: 写真の表示〜
  3. Java OpenCV Lv2 〜画像を表示する〜
  4. Java OpenCV Lv3 〜画像の平滑化(smooth())〜
  5. Java OpenCV Lv3 〜画像にガウシアンフィルタ(GaussianBlur())〜
  6. Java OpenCV Lv3 〜画像に中央値フィルタ(medianBlur())〜
  7. Java OpenCV Lv4 〜画像の中身をみてみる〜
  8. Java OpenCV Lv5 〜Matクラスで描画処理〜

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す