List of usage examples for org.opencv.core MatOfFloat get
public double[] get(int row, int col)
From source file:ch.zhaw.facerecognitionlibrary.PreProcessor.StandardPreprocessing.EyeAlignment.java
License:Open Source License
public PreProcessor preprocessImage(PreProcessor preProcessor) { List<Mat> images = preProcessor.getImages(); List<Mat> processed = new ArrayList<Mat>(); preProcessor.setEyes();// w ww.ja va2s . c o m Eyes[] eyes = preProcessor.getEyes(); if (eyes == null || eyes[0] == null) { return null; } for (int i = 0; i < images.size(); i++) { Mat img = images.get(i); Eyes eye = eyes[i]; double desiredLen = (DESIRED_LEFT_EYE_X - DESIRED_RIGHT_EYE_X) * img.cols(); double scale = 0.9 * desiredLen / eye.getDist(); MatOfFloat leftCenter = eye.getLeftCenter(); MatOfFloat rightCenter = eye.getRightCenter(); double centerX = ((leftCenter.get(0, 0)[0] + rightCenter.get(0, 0)[0]) / 2); double centerY = ((leftCenter.get(1, 0)[0] + rightCenter.get(1, 0)[0]) / 2); Mat rotMat = Imgproc.getRotationMatrix2D(new Point(centerX, centerY), eye.getAngle(), scale); rotMat.put(2, 0, img.cols() * 0.5 - centerX); rotMat.put(2, 1, img.rows() * DESIRED_RIGHT_EYE_Y - centerY); Imgproc.warpAffine(img, img, rotMat, new Size(img.cols(), img.rows())); processed.add(img); } preProcessor.setImages(processed); return preProcessor; }