イントロダクション
前回は、Mat#submat()を実行してみました。元の画像データを切り抜きその部分に変更を加えるものでした。
今回は、Core#bitwise_and()を実行してみます。
画像の論理演算「AND演算処理」
本を読むと、描く配列ごとの論理積の結果を出力するようです。つまり「掛け算」ということです。前々回やったような?些細なことは放っておき。。。
シンプルに実行した結果を記載いたします。
<実行結果>
+ =
<上の絵が見えないとき用>
2つの画像が合体したような感じです。どっかでみたような結果だな・・・
上でやったのと同じ結果だな(元にした画像は違います)
使用したメソッドは下のものです。パラメータも多く細かい調整が可能です。
Core.addWeighted(src, 0.5, cart, 0.5, 0, dst);
今回使用したのは下のソースコード赤い字の部分です。
<ソース> ※Gitからダウンロードできます
/**
* メインメソッド、書き方は決まっている。
* イメージファイルを読み込んで線を引く
*
* @param argsプログラム引数
*/
public static void main(String[] args) {
long start = System.currentTimeMillis();
// 画像を2枚読み込む
Mat src = Imgcodecs.imread(OpenCVTest11.class.getResource("/images/4color.png").getPath());
Mat cart = Imgcodecs.imread(OpenCVTest11.class.getResource("/images/racgaki2.png").getPath());
// 論理演算処理を行う
Mat dst = new Mat();
Core.bitwise_and(src, cart, dst);
ViewFrame frame = new ViewFrame(dst);
System.out.println("実行時間: " + (System.currentTimeMillis() - start) + "ミリ秒");
}
まとめ
アルファブレンド(addWeighted)の調整値(param)を上のコードと同じように実行すると論理積と同じ結果でる。
画像処理を行うときは、それぞれ適当な方法を洗濯して使用する。。。というところでしょうか。
でわでわ。。。
関連ページ一覧
- ava Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
今までにやったこと(OpenCV編)
- 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〜画像の平均値をだす〜