Java-OpenCV错误:运行FaceRecognition程序时断言失败
我对OpenCV非常陌生。从中我得到了用于人脸检测的JAVA示例程序。我在安装opencv 3.0版本时遇到了一些问题,代码是针对2.4.6版本的。无论如何,当我将代码更改为Java-OpenCV错误:运行FaceRecognition程序时断言失败,java,image-processing,opencv3.0,Java,Image Processing,Opencv3.0,我对OpenCV非常陌生。从中我得到了用于人脸检测的JAVA示例程序。我在安装opencv 3.0版本时遇到了一些问题,代码是针对2.4.6版本的。无论如何,当我将代码更改为 System.loadLibrary(Core.NATIVE_LIBRARY_NAME); System.out.println("\nRunning FaceDetector"); CascadeClassifier faceDetector = new CascadeClassifi
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("\nRunning FaceDetector");
CascadeClassifier faceDetector = new CascadeClassifier(FaceDetection.class.getResource("/resources/xmls/haarcascade_frontalface_alt.xml").getPath());
Mat image = Imgcodecs.imread(FaceDetection.class.getResource("/resources/testimages/FaceTest.jpg").getPath());
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 = "/resources/testimages/FaceRecognised.jpg";
System.out.println(String.format("Writing %s", filename));
Imgcodecs.imwrite(filename, image);
但不幸的是,在运行时出现了异常。Stacktrace如下所示:
运行面部检测器
OpenCV错误:cv::CascadeClassifier::detectMultiScale文件C:\builds\master\u PackSlaveAddon-win64-vc12-static\OpenCV\modules\objdetect\src\cascadedetect.cpp第1595行中的断言失败(!empty())
线程“main”CvException[org.opencv.core.CvException:cv::Exception:C:\builds\master\u PackSlaveAddon-win64-vc12-static\opencv\modules\objdetect\src\cascadedetest.cpp:1595:错误:(-215)!函数cv::CascadeClassifier::detectMultiScale中的空()
]
位于org.opencv.objdetect.CascadeClassifier.detectMultiScale_1(本机方法)
位于org.opencv.objdetect.CascadeClassifier.detectMultiScale(CascadeClassifier.java:103)
位于com.bq.opencv.FaceDetection.main(FaceDetection.java:31)
请帮忙 Hi这被更正为尝试给出绝对路径并从类路径中删除xml文件和图像
CascadeClassifier faceDetector = new CascadeClassifier("C:/OpenCV/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml");
而不是
CascadeClassifier faceDetector = new CascadeClassifier(FaceDetection.class.getResource("/resources/xmls/haarcascade_frontalface_alt.xml").getPath());
而且:
Mat image=Imgcodecs.imread(“C:/XYZ/PQR/FaceTest.jpg”)