OpenCV for Androidは資料が少ないので忘れないうちに簡単なのだけ雑にまとめておく。
環境
OpenCV Library 2.4.5
OpenCVの導入についてはこっちの記事で
ぼかし
ガウシアンフィルタ
なんかぼわーってするぼかし
8,6のあたりの値はなんだったか忘れた。
Imgproc.GaussianBlur(元画像(Mat), 出力画像(Mat), new Size(9, 9)(とか、ぼかす範囲), 8, 6);
メディアンフィルタ
ノイズ除去出来る。詳しくはこのへん
Imgproc.medianBlur(blur, blur, 7(どれくらいぼかすか。奇数));
ガンマ補正
public synchronized Mat gammaFilter(Mat inputPicture, double gamma(定数)) { Mat result = new Mat(); inputPicture.copyTo(result); Mat lut = new Mat(1, 256, CvType.CV_8UC1); lut.setTo(new Scalar(0)); for (int i = 0; i < 256; i++) { lut.put(0, i, Math.pow((double)(1.0 * i/255), 1/r) * 255); } Core.LUT(inputPicture, lut, result); return result; }
マスクを使った合成
マスク作って合成するときに使う。
img1とimg2をmaskをつかってimg3に合成したいとすると
Core.bitwise_and(img1, mask, img1); //マスク部分のimg1を取り出してimg1に入れる Core.bitwise_not(mask, mask);//マスクを反転させる Core.bitwise_and(img2, mask, img2); //反転マスク部分のimg2を取り出してimg2にいれる Core.bitwise_or(img1, img2, img3);//img1とimg2を合成してimg3に入れる
img1,2,3とmaskは全部Mat.
まとめ
C++の読み替え方がわからないときはとりあえず
CoreかImgprocで . ってすれば
補完がでてくるからその辺を探す。
(OpenCV超初心者なので色々間違っているかもしれないです)