weixin_44613287 2019-04-24 16:39 采纳率: 0%
浏览 1645
已结题

detectMultiScale函数一加入就会崩溃,程序自动停止但不报错,求解!

根据教程制作了人脸识别的程序,但是detectMultiScale无法正常运行,一旦加入就会使程序停止,求大神你帮帮我,很急!
初始化模型

public void initializeOpenCVDependencies() {
        try {
            // Copy the resource into a temp file so OpenCV can load it
                 InputStream is = getResources().openRawResource(R.raw.lbpcascade_frontalface_improved);
                 File cascadeDir = getDir("cascade", Context.MODE_PRIVATE);
                 File mCascadeFile = new File(cascadeDir.getAbsoluteFile(), "lbpcascade_frontalface_improved.xml");
                 FileOutputStream os = new FileOutputStream(mCascadeFile);
                 byte[] buffer = new byte[4096];
                 int bytesRead=0;
                 while ((bytesRead = is.read(buffer)) != -1) {
                     os.write(buffer, 0, bytesRead);
                 }
                 is.close();
                 os.close();
                 // Load the cascade classifier
            CascadeClassifier detectface = new CascadeClassifier(mCascadeFile.getAbsolutePath());
           // detectface.load("lbpcascade_frontalface_improved.xml");
        } catch (Exception e) {
            Log.e("OpenCVActivity", "Error loading cascade", e);
        } 

检测段

public void procSrc2Gray(){
        Mat rgbMat = new Mat();
        Mat grayMat = new Mat();
        Mat guess= new Mat();
        Mat canny=new Mat();
        Mat lines=new Mat();

        MatOfRect car=new MatOfRect();







        srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a);
        grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565);
        Utils.bitmapToMat(srcBitmap, rgbMat);//convert original bitmap to Mat, R G B.

        Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat
        MatOfRect cars=new MatOfRect();
     detectface.detectMultiScale(grayMat,car,1.1,3,0,new Size(50,50),new Size());

补充问题日志

 Process: com.example.myapplication, PID: 3254
    java.lang.NullPointerException: Attempt to invoke virtual method 'void org.opencv.objdetect.CascadeClassifier.detectMultiScale(org.opencv.core.Mat, org.opencv.core.MatOfRect, double, int, int, org.opencv.core.Size, org.opencv.core.Size)' on a null object reference
        at com.example.myapplication.MainActivity.procSrc2Gray(MainActivity.java:139)
        at com.example.myapplication.MainActivity$ProcessClickListener.onClick(MainActivity.java:188)
        at android.view.View.performClick(View.java:4780)
        at android.view.View$PerformClick.run(View.java:19866)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
```不知道为什么这个就变成空指针了=。=
  • 写回答

1条回答 默认 最新

  • 王能 2019-04-25 10:29
    关注

    日志日志日志,新手博客先看一遍https://blog.csdn.net/weimingjue/article/details/87921494

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料