Opencv-Android: получение исключения нулевого указателя после добавления в мой код каскадного классификатора - PullRequest
0 голосов
/ 11 февраля 2019

Я получаю исключение нулевого указателя в классе CaseCadeClassifier.java

здесь:

Mat objects_mat = objects;
        detectMultiScale_4(nativeObj, image.nativeObj, objects_mat.nativeObj, scaleFactor);

Вот мой журнал:

    02-11 20:53:15.209 10968-10968/? E/SystemUpdate-ReflectUtils: getClass android.provider.MiuiSettings$Privacy java.lang.ClassNotFoundException: android.provider.MiuiSettings$Privacy
02-11 20:53:15.596 11016-11016/? E/MiPicks-ReflectUtils: getField null.ACTION_PRIVACY_AUTHORIZATION_DIALOG java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Class.toString()' on a null object reference
02-11 20:53:15.597 11016-11016/? E/MiPicks-ReflectUtils: getFieldValue null.PRIVACY_PREFIX java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.reflect.Field java.lang.Class.getDeclaredField(java.lang.String)' on a null object reference

:18.013 11076-11263/? E/org.opencv.objdetect: objdetect::detectMultiScale_14() caught cv::Exception: OpenCV(4.0.1) /build/master_pack-android/opencv/modules/objdetect/src/cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
02-11 20:53:18.014 11076-11263/? E/AndroidRuntime: FATAL EXCEPTION: Thread-4
                                                   Process: com.therobustprogrammer.opencvtestapp, PID: 11076
                                                   CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.0.1) /build/master_pack-android/opencv/modules/objdetect/src/cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
                                                   ]
                                                       at org.opencv.objdetect.CascadeClassifier.detectMultiScale_4(Native Method)
                                                   at org.opencv.objdetect.CascadeClassifier.detectMultiScale(CascadeClassifier.java:192)
                                                   at com.therobustprogrammer.opencvtestapp.MainActivity.onCameraFrame(MainActivity.java:205)
                                                   at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:392)
                                                   at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:373)
                                                   at java.lang.Thread.run(Thread.java:760)

Здесь я добавляюклассификатор

Imgproc.cvtColor(inputFrame.rgba(), matGray, Imgproc.COLOR_RGB2GRAY);
        MatOfRect faceDetections = new MatOfRect();
        cascadeFaceClassifier.detectMultiScale(matGray, faceDetections, 5);

и вот моя инициализация

File faceClassifierDir = getDir("sampledata", Context.MODE_PRIVATE);
        File mCasecadeFile = new File(faceClassifierDir, "haarcascade_eye.xml");

        System.out.println("Absolute Path : " + mCasecadeFile.getAbsolutePath());

    cascadeFaceClassifier = new CascadeClassifier(mCasecadeFile.getAbsolutePath());
    cascadeFaceClassifier.load(mCasecadeFile.getAbsolutePath());

Приложение вылетает в основной активности.Я новичок здесь, пожалуйста, помогите.

...