Javaでクロス!モンハンじゃないよ?

Java OpenCV Lv9 〜画像の掛け算〜

イントロダクション

このところ、画像の計算を行なっております。

  1. Java OpenCV Lv9 〜画像編集「足し算」(cvAdd)〜
  2. Java OpenCV Lv9 〜画像編集「引き算」(cvSubtract)〜

足し算、引き算。。。とくれば「掛け算」でしょう。というわけで掛け算やります。

画像のアルファブレンド(掛け算?)

とりあえず「アルファブレンド」の意味がわからないので調べます。

ついでに「アルファチャンネル」も理解する必要アリのようです。

まずは実行して見ます。

 +  = 

これが、始めイメージしていた「足し算」でしたが、どうやら「掛け算」にあたるようです。


ソース>※GItからダウンロードできます。

public static void main(String[] args) {
	long start = System.currentTimeMillis();
	// 真っ白な画像から引き算してみる
	Mat src = Imgcodecs.imread(OpenCVTest9_Substract.class.getResource("/images/rakugaki.png").getPath());
	Mat cart = Imgcodecs.imread(OpenCVTest9_Substract.class.getResource("/images/racgaki2.png").getPath());
	System.out.println("*** First ****");
	System.out.println(src.dump());
	Mat dst = new Mat();
	Core.addWeighted(src, 0.5, cart, 0.5, 0, dst);
	System.out.println("*** Second ****");
	System.out.println(dst.dump());
	ViewFrame frame = new ViewFrame(dst);
	System.out.println("実行時間: " + (System.currentTimeMillis() - start) + "ミリ秒");
}

結果を見てみて

今までやってきた画像の計算に関しては、計算するときに画像のサイズを合わせる必要がある、が100x100の画像と20x20の画像を掛け算(アルファブレンド)したいときは、ROIで画像の切り抜きを行えば問題なしです。

関連ページ一覧

  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)

今までにやったこと(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 Lv4 〜画像の中身をみてみる〜
  7. Java OpenCV Lv5 〜Matクラスで描画処理〜
  8. Java OpenCV Lv6 〜Matクラスで背景から作成してみる〜
  9. Java OpenCV Lv7 〜MatクラスでEllipseしてみる〜
  10. Java OpenCV Lv9 〜画像編集「足し算」(cvAdd)〜
  11. Java OpenCV Lv9 〜画像編集「引き算」(cvSubtract)〜
  12. Java OpenCV Lv9 〜画像の掛け算〜
  13. Java OpenCV Lv10 〜行列演算Mat#submat()〜
  14. Java OpenCv Lv10〜画像の平均値をだす〜

重宝するページ:JavaDoc(opencv-343.jar API)

投稿者:

takunoji

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

コメントを残す