OpenCV报错

OpenCV官方栗子执行报错:
Running DetectFaceDemo
Detected 0 faces
Writing faceDetection.png
*libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data*
 原因:路径问题,java代码getPath()返回的路径前面多个/,c++中不识别,解决方法如下。
System.out.println("
Running DetectFaceDemo");
// Create a face detector from the cascade file in the resources
// directory.
CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("/lbpcascade_frontalface.xml").getPath());
Mat image = Imgcodecs.imread(getClass().getResource("/lena.png").getPath());

 修改为:

final URI xmlUri = getClass().getResource("/lbpcascade_frontalface.xml").toURI();
final CascadeClassifier faceDetector = new CascadeClassifier(new File(xmlUri).getAbsolutePath());
final URI imageUri = getClass().getResource("/4.jpg").toURI();
Mat image = Imgcodecs.imread(new File(imageUri).getAbsolutePath());
岁月留痕
原文地址:https://www.cnblogs.com/navigate/p/7151492.html