Advertisement
greyhat49

function for face recognition

Dec 17th, 2013
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
  2.  
  3.         mRgba = inputFrame.rgba();
  4.         mGray = inputFrame.gray();
  5.  
  6.         // hist
  7.         // Size sizeRgba = mRgba.size();
  8.         Size sizeRgba = mGray.size();
  9.         // end
  10.  
  11.         if (mAbsoluteFaceSize == 0) {
  12.             int height = mGray.rows();
  13.             if (Math.round(height * mRelativeFaceSize) > 0) {
  14.                 mAbsoluteFaceSize = Math.round(height * mRelativeFaceSize);
  15.             }
  16.             // mNativeDetector.setMinFaceSize(mAbsoluteFaceSize);
  17.         }
  18.  
  19.         MatOfRect faces = new MatOfRect();
  20.  
  21.         if (mDetectorType == JAVA_DETECTOR) {
  22.             if (mJavaDetector != null)
  23.                 // do detect
  24.                 mJavaDetector.detectMultiScale(mRgba, faces, 1.1, 2,
  25.                         2, // TODO: objdetect.CV_HAAR_SCALE_IMAGE
  26.                         new Size(mAbsoluteFaceSize, mAbsoluteFaceSize),
  27.                         new Size());
  28.         } else if (mDetectorType == NATIVE_DETECTOR) {
  29.             // if (mNativeDetector != null)
  30.             // mNativeDetector.detect(mGray, faces);
  31.         } else {
  32.             Log.e(TAG, "Detection method is not selected!");
  33.         }
  34.  
  35.         Rect[] facesArray = faces.toArray();
  36.  
  37.         if ((facesArray.length == 1) && (faceState == TRAINING)
  38.                 && (countImages < MAXIMG)
  39.                 && (!text.getText().toString().isEmpty())) {
  40.  
  41.             Mat m = new Mat();
  42.             Rect r = facesArray[0];
  43.  
  44.             m = mGray.submat(r);
  45.             // mBitmap = Bitmap.createBitmap(m.width(), m.height(),
  46.             mBitmap = Bitmap.createBitmap(m.width(), m.height(),
  47.                     Bitmap.Config.ARGB_8888);// 32-bit
  48.  
  49.  
  50.             Utils.matToBitmap(m, mBitmap);
  51.             // SaveBmp(mBitmap,"/sdcard/db/I("+countTrain+")"+countImages+".jpg");
  52.  
  53.             Message msg = new Message();
  54.             String textTochange = "IMG";
  55.             msg.obj = textTochange;
  56.             mHandler.sendMessage(msg);
  57.             if (countImages < MAXIMG) {
  58.                 fr.add(m, text.getText().toString());
  59.                 countImages++;
  60.             }
  61.  
  62.         } else if ((facesArray.length > 0) && (faceState == SEARCHING)) {
  63.             Mat m = new Mat();
  64.             m = mRgba.submat(facesArray[0]);// make canvas extracted feature
  65.             mBitmap = Bitmap.createBitmap(m.width(), m.height(),
  66.                     Bitmap.Config.ARGB_8888);
  67.  
  68.             Utils.matToBitmap(m, mBitmap);
  69.             Message msg = new Message();
  70.             String textTochange = "IMG";
  71.             msg.obj = textTochange;
  72.             mHandler.sendMessage(msg);
  73.  
  74.             textTochange = fr.predict(m);
  75.             // fr.train();
  76.             mLikely = fr.getProb();
  77.             msg = new Message();
  78.             msg.obj = textTochange;
  79.             mHandler.sendMessage(msg);
  80.  
  81.         }
  82. ...............etc.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement