2014年1月17日金曜日

Android-OpenCV 肌色抽出(2)

Android-OpenCV 肌色抽出(2)

前回の記事 Android-OpenCV 肌色抽出で肌色の部分だけが白色の画像が出力されましたがこれだけではおもしろくないので今回は肌色の部分だけが色が残っている画像を出力します。


/*--------------------------------------------------------------------

Mat src;//入力画像
Mat dst;//出力画像
Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2HSV);

Mat src2 = dst;//入力画像
Mat dst2;//出力画像
Scalar lowerb = new Scalar( 0,60,80);//下限値
Scalar lowerb = new Scalar(30,255,255);//上限値
Core.inRange( src2,  lowerb,  upperb, dst2);

---------------------------------------------------------------------*/

ここまでで肌色の部分だけ値を持った画像になります。

次に色のついている入力画像と肌色の抽出した画像とを比べて値があるところだけ色を残したいと思います。

Core.bitwise_and(Mat src1, Mat src2, Mat dst)

src1-入力画像1
src2-入力画像2
dst-出力画像

今回はsrc1に元の画像、src2に肌色を抽出した画像をいれます。

出力画像は肌色の部分だけ色が残りそれ以外はなにも値がない画像になります。


/*--------------------------------------------------------------------

Mat src;//入力画像
Mat dst;//出力画像
Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2HSV);

Mat src2 = dst;//入力画像
Mat dst2;//出力画像
Scalar lowerb = new Scalar( 0,60,80);//下限値
Scalar lowerb = new Scalar(30,255,255);//上限値
Core.inRange( src2,  lowerb,  upperb, dst2);

Mat src3 = dst2;
Mat dst3;
Core.bitwise_and( src, src3,  dst3);

---------------------------------------------------------------------*/

0 件のコメント:

コメントを投稿