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("\nRunning 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());
岁月留痕
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步