Java opencv人脸识别,获取“的坐标”;“边界框”;环绕图像
今天,我在java中尝试一个使用opencv的项目,并且我在遵循代码。我将其修改为使用opencv 3.0.0。基本上,我试图从一个文件夹中获取一组图像,然后在人脸识别找到人脸的地方裁剪这些图像。所以问题是,我似乎无法获得围绕图像()的“边界框”的坐标。我想将图像裁剪到框中,有人知道我在说什么或做什么吗 感谢您的帮助!:)我是一个(非常)初学者程序员。谢谢大家!Java opencv人脸识别,获取“的坐标”;“边界框”;环绕图像,java,opencv,coordinates,Java,Opencv,Coordinates,今天,我在java中尝试一个使用opencv的项目,并且我在遵循代码。我将其修改为使用opencv 3.0.0。基本上,我试图从一个文件夹中获取一组图像,然后在人脸识别找到人脸的地方裁剪这些图像。所以问题是,我似乎无法获得围绕图像()的“边界框”的坐标。我想将图像裁剪到框中,有人知道我在说什么或做什么吗 感谢您的帮助!:)我是一个(非常)初学者程序员。谢谢大家! import java.io.File; import java.io.IOException; import org.opencv.
import java.io.File;
import java.io.IOException;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class hello {
public static void main(String[] args) throws IOException {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("\nRunning FaceDetector");
CascadeClassifier faceDetector = new CascadeClassifier("C:/Users/Family/workspace/detect face/haarcascade_frontalface_alt.xml");
File folder = new File("C:\\Users\\Family\\Downloads\\Photos");
File[] listOfFiles = folder.listFiles();
for (int j = 0; j < listOfFiles.length; j++) {
System.out.println(listOfFiles[j]);
}
for (int i = 0; i < listOfFiles.length-1; i++){
String picname = listOfFiles[i].toString();
System.out.println("reading: " + listOfFiles[i]);
Mat image = Imgcodecs.imread(picname);
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
for (Rect rect : faceDetections.toArray()) {
Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar (0, 255, 0));
}
String filename = "monkey.png";
System.out.println(String.format("Writing %s", filename));
Imgcodecs.imwrite(filename, image);
}
}
导入java.io.File;
导入java.io.IOException;
导入org.opencv.core.core;
导入org.opencv.core.Mat;
导入org.opencv.core.MatOfRect;
导入org.opencv.core.Point;
导入org.opencv.core.Rect;
导入org.opencv.core.Scalar;
导入org.opencv.imgcodecs.imgcodecs;
导入org.opencv.imgproc.imgproc;
导入org.opencv.objdetect.CascadeClassifier;
公共课你好{
公共静态void main(字符串[]args)引发IOException{
System.loadLibrary(Core.NATIVE\u LIBRARY\u NAME);
System.out.println(“\n运行面检测器”);
CascadeClassifier faceDetector=新的CascadeClassifier(“C:/Users/Family/workspace/detect face/haarcascade_frontalface_alt.xml”);
文件夹=新文件(“C:\\Users\\Family\\Downloads\\Photos”);
File[]listOfFiles=folder.listFiles();
对于(int j=0;j
}试试这个方法
rect.getX(); //for getting x cordinates
rect.getY(); //for getting y cordinates
rect.getWidth(); //for getting width
rect.getHeight(); //for getting height
这张图片对你有帮助
试试这个方法
rect.getX(); //for getting x cordinates
rect.getY(); //for getting y cordinates
rect.getWidth(); //for getting width
rect.getHeight(); //for getting height
这张图片对你有帮助
谢谢!这对我来说基本上解决了这个问题:D我在看了你说的话之后,找到了密码。去吧……一切顺利……别忘了分享你的问题……也别忘了投票选出你最好的答案……小心。。。宽度包括最左边的坐标<代码>x谢谢!这对我来说基本上解决了这个问题:D我在看了你说的话之后,找到了密码。去吧……一切顺利……别忘了分享你的问题……也别忘了投票选出你最好的答案……小心。。。宽度包括最左边的坐标<代码>x