我在我的项目中使用 javaCV 信封,当我尝试使用 cvLoad
函数从 xml (haarcascade_frontalface_default.xml
) 加载 Haar 级联时,我从中得到 null .没有错误,只是 null
而不是 Pointer
。
import org.bytedeco.javacpp.BytePointer;
import org.bytedeco.javacpp.Pointer;
import org.bytedeco.javacpp.opencv_core.*;
import org.bytedeco.javacpp.opencv_objdetect.CvHaarClassifierCascade;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgcodecs.*;
import static org.bytedeco.javacpp.opencv_objdetect.*;
URI haarCascadeResource = getClass().getResource(
"/haarcascades/haarcascade_frontalface_default.xml").toURI();
String haarCascadePath = Paths.get(haarCascadeResource).toAbsolutePath().normalize().toString();
Pointer pointerToCascade = cvLoad(haarCascadePath);
this.faceHaarCascade = new CvHaarClassifierCascade(pointerToCascade);
pointerToCascade
是 null
并且 this.faceHaarCascade
也是 null
。
试试下面的代码:
Pointer pointerToCascade = cvLoad(Put the directory of the haarcascade_frontalface_default.xml);
this.faceHaarCascade = new CvHaarClassifierCascade(pointerToCascade);
我是一名优秀的程序员,十分优秀!