イントロダクション
このところ、画像の計算を行なっております。
足し算、引き算。。。とくれば「掛け算」でしょう。というわけで掛け算やります。
画像のアルファブレンド(掛け算?)
とりあえず「アルファブレンド」の意味がわからないので調べます。
ついでに「アルファチャンネル」も理解する必要アリのようです。
まずは実行して見ます。
+ =
これが、始めイメージしていた「足し算」でしたが、どうやら「掛け算」にあたるようです。
<ソース>※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で画像の切り抜きを行えば問題なしです。
関連ページ一覧
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
今までにやったこと(OpenCV編)
- Java OpenCV 環境セットアップ(on Mac)
- Java OpenCv Lv1 〜入門: 写真の表示〜
- Java OpenCV Lv2 〜画像を表示する〜
- Java OpenCV Lv3 〜画像の平滑化(smooth())〜
- Java OpenCV Lv3 〜画像にガウシアンフィルタ(GaussianBlur())〜
- Java OpenCV Lv4 〜画像の中身をみてみる〜
- Java OpenCV Lv5 〜Matクラスで描画処理〜
- Java OpenCV Lv6 〜Matクラスで背景から作成してみる〜
- Java OpenCV Lv7 〜MatクラスでEllipseしてみる〜
- Java OpenCV Lv9 〜画像編集「足し算」(cvAdd)〜
- Java OpenCV Lv9 〜画像編集「引き算」(cvSubtract)〜
- Java OpenCV Lv9 〜画像の掛け算〜
- Java OpenCV Lv10 〜行列演算Mat#submat()〜
- Java OpenCv Lv10〜画像の平均値をだす〜
重宝するページ:JavaDoc(opencv-343.jar API)