■ はじめに
* OpenCV の設定をおこなっておく(下記の関連記事を参照)
https://dk521123.hatenablog.com/entry/2016/06/27/234046
■ サンプルで使用する画像
http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg
■ 画像を90度/180度/270度回転させる
以下のAPIを使用する * Core.transpose() : 転置行列(※) ※ 行列Aの行と列を入れ替えてできる行列を、行列Aの転置行列という
http://www.geisya.or.jp/~mwm48961/linear_algebra/transpose1.htm
* Core.flip() : 画像を垂直・水平に反転する
サンプル
OpenCV v2.4系
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.highgui.Highgui; public class MatrixSample { /** * @param args */ public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); String input = "C:/temp/lena_lg.jpg"; String output90 = "C:/temp/result90.jpg"; String output180 = "C:/temp/result180.jpg"; String output270 = "C:/temp/result270.jpg"; Mat image90 = Highgui.imread(input); Mat image180 = Highgui.imread(input); Mat image270 = Highgui.imread(input); // 処理 Core.transpose(image90, image90); Core.flip(image90, image90, 1); Core.flip(image180, image180, -1); Core.transpose(image270, image270); Core.flip(image270, image270, 0); System.out.println(String.format("Writing %s", image90)); Highgui.imwrite(output90, image90); System.out.println(String.format("Writing %s", image180)); Highgui.imwrite(output180, image180); System.out.println(String.format("Writing %s", image270)); Highgui.imwrite(output270, image270); System.out.println("Done!"); } }
参考文献
http://www.kosaic.jp/wordpress/2011/08/android-opencv-%E3%83%8D%E3%82%BF%E6%8B%BE%E3%81%84-822/
http://blog.goo.ne.jp/nobotta50/e/fb83c1d0d3d90ee99c3657f1654bbe1c
http://geekn-nerd.blogspot.jp/2012/02/opencv-for-android_19.html
関連記事
OpenCV ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/06/27/234046
画像編集 ~ 画像を縦・横に結合する ~
https://dk521123.hatenablog.com/entry/2016/10/29/114440