打开cv面预处理在java中不起作用

打开cv面预处理在java中不起作用,java,opencv,face-recognition,Java,Opencv,Face Recognition,我正在使用OpenCV的java库进行人脸识别。我在面部预处理阶段卡住了。这是我的密码- double desiredFaceHeight=70; double desiredFaceWidth=70; double desiredLen=(DESIRED_RIGHT_EYE_X-0.16); try{ double dy= (face.getRightEye().y-face.getLeftEye().y); double dx= (face.getRightEye().x-face.getL

我正在使用OpenCV的java库进行人脸识别。我在面部预处理阶段卡住了。这是我的密码-

double desiredFaceHeight=70;
double desiredFaceWidth=70;
double desiredLen=(DESIRED_RIGHT_EYE_X-0.16);
try{
double dy= (face.getRightEye().y-face.getLeftEye().y);
double dx= (face.getRightEye().x-face.getLeftEye().x);
double len=Math.sqrt((dx*dx)+(dy*dy));
double scale=desiredLen*desiredFaceWidth/len;
// Get the transformation matrix for the desired angle & size.
Mat rotMat=Imgproc.getRotationMatrix2D(face.getCenterOfEyes(),face.getEyesAngle(), scale);

//Shift the center of the eyes to be the desired center.
double ex= desiredFaceWidth*0.5f-face.getCenterOfEyes().x;
double ey=desiredFaceHeight*DESIRED_LEFT_EYE_Y-face.getCenterOfEyes().y;
rotMat.put(0,2,rotMat.get(0,2)[0]+ex);//view
rotMat.put(1,2,rotMat.get(1,2)[0]+ey);//view

Mat warped = new Mat((int)desiredFaceHeight, (int)desiredFaceWidth,CvType.CV_8U,new Scalar(128));
//Mat warped=face.getFace();
Imgproc.warpAffine(face.getFace(),warped, rotMat, warped.size());

但它并没有给人改变的面孔。请描述我所做的错误或提供替代解决方案。谢谢。

请给出一个最小的工作(编译)代码示例,说明您的问题,并尝试编写可读代码。您可能还想添加一些关于哪些部分不起作用的信息。通过深入查看代码,我知道旋转部分不起作用。”Mat rotMat=Imgproc.getRotationMatrix2D(face.getCenterOfEyes(),face.getEyesAngle(),scale);'warpAffine(face.getFace(),warped,rotMat,warped.size());据我所知,旋转面的中心计算错误。