320版本的分支代码是不是少了/data/data/kong.qingwei.opencv320/app_cascade/2131099665.xml
实例化CascadeClassifier的时候,这个对象一直是empty的。
有朋友遇到这个问题吗?求告知下
没有呀,可以正常运行呢,您这有没有什么log信息。
错误信息就是mCascadeClassifier这个检测器报了个空指针,我看github上的代码也没有那个xml的啊
Process: kong.qingwei.opencv320, PID: 14634 java.lang.NullPointerException at com.kongqw.ObjectDetector.detectObject(ObjectDetector.java:106) at com.kongqw.ObjectDetectingView.onCameraFrame(ObjectDetectingView.java:51) at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:392) at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:355) at java.lang.Thread.run(Thread.java:841)
clone后改过程序吗?createDetector(Context context, int id) 的 id 要传入R.raw.xxx
xxx 是 main/res/raw/ 下的xml文件,检查一下。
没改过的,createDetector方法也传了R.raw.xxx了的。现在就是我点击完目标检测,程序就会实例化那几个检测器(都赋值了null),再点一下人脸检测,程序就奔溃了。
您这是读取 xml 失败了,raad都返回-1了,检查一下 xml 是否正常。 另外您是什么设备?系统版本?
大神,真的是和系统版本有关系! 我用的android4.4和android5.1的平板试了都报这个错,用7.1系统的手机来试可以的。
Android 8.1 / OpenCV 3.4.x: javaDetector = new CascadeClassifier(cascadeFile.getAbsolutePath()); javaDetector.load( cascadeFile.getAbsolutePath()); //添加这个