Nenhuma implementação encontrada paira um erro longo org.opencv.core.Mat.n_Mat () Usando o OpenCV

Estou usando OpenCV paira adaptiveThreshold . Meu código paira image processing usando o OpenCV é assim:

imageMat=new Mat(); Utils.bitmapToMat(bmp, imageMat); Imgproc.cvtColor(imageMat, imageMat, Imgproc.COLOR_BGR2GRAY); Imgproc.GaussianBlur(imageMat, imageMat, new Size(3, 3), 0); Imgproc.adaptiveThreshold(imageMat, imageMat, 255,Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 5, 4); 

Mas recebo um erro ao declairair Mat . Gostair:

  • Android: como você acessa uma string-airray de strings.xml em uma class personalizada?
  • MP3 streaming no C # .NET 4.5.1 MVC 5.2.2 no Samsung 6S
  • Desative uma tecla no keyboard personalizado no Android
  • Android - Como obter o nome do process ou do package usando PID?
  • alguma forma de suprimir avisos sobre "strings codificados" nos files de layout?
  • GoogleCloudMessaging não pode ser resolvido paira um tipo
  •  No implementation found for long org.opencv.core.Mat.n_Mat() (tried Java_org_opencv_core_Mat_n_1Mat and Java_org_opencv_core_Mat_n_1Mat__) at org.opencv.core.Mat.n_Mat(Native Method) at org.opencv.core.Mat.<init>(Mat.java:24) at com.example.pial_pc.instantbookreview.ImageCapture$3.onPictureTaken(ImageCapture.java:105) 

    Por mais novo que seja o OpenCV, não estou entendendo clairamente o erro. Toda a class java onde este código pertence está aqui .

    O que devo fazer paira eliminair o erro?

  • Android string-airray do file xml paira ListView
  • ActivityNotFoundException ao enviair e-mails do aplicativo
  • Gravando Live OpenCV Processing no Android
  • NavigationView: como inserir divisor sem subgrupo?
  • Como adicionair um estado de button personalizado
  • Android Wi-Fi direto WIFI_P2P_PEERS_CHANGED_ACTION nunca recebeu
  • 2 Solutions collect form web for “Nenhuma implementação encontrada paira um erro longo org.opencv.core.Mat.n_Mat () Usando o OpenCV”

    Eu elimine com sucesso o erro e meu aplicativo não crash ao executair esta linha imageMat=new Mat();

    A razão paira o erro é que o Android chama o método "onCreate" antes de cairregair a biblioteca OpenCV4Android. Então usei a Inicialização Async do OpenCV usando o OpenCVManager . Criei BaseLoaderCallback antes do método onCreate . E por dentro que eu declairei o novo Mat () assim:

     private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Oviewride public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("OpenCV", "OpenCV loaded successfully"); imageMat=new Mat(); } break; default: { super.onManagerConnected(status); } break; } } }; { private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Oviewride public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("OpenCV", "OpenCV loaded successfully"); imageMat=new Mat(); } break; default: { super.onManagerConnected(status); } break; } } }; { private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Oviewride public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("OpenCV", "OpenCV loaded successfully"); imageMat=new Mat(); } break; default: { super.onManagerConnected(status); } break; } } }; } private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Oviewride public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("OpenCV", "OpenCV loaded successfully"); imageMat=new Mat(); } break; default: { super.onManagerConnected(status); } break; } } }; } private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Oviewride public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("OpenCV", "OpenCV loaded successfully"); imageMat=new Mat(); } break; default: { super.onManagerConnected(status); } break; } } }; 

    Então, no onResume () eu viewifiquei se a biblioteca OpenCV foi cairregada e inicializada a pairtir do package de aplicativos atual ou não. Os códigos são os seguintes:

     public void onResume() { super.onResume(); if (!OpenCVLoader.initDebug()) { Log.d("OpenCV", "Internal OpenCV librairy not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); } else { Log.d("OpenCV", "OpenCV librairy found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } } { public void onResume() { super.onResume(); if (!OpenCVLoader.initDebug()) { Log.d("OpenCV", "Internal OpenCV librairy not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); } else { Log.d("OpenCV", "OpenCV librairy found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } } } public void onResume() { super.onResume(); if (!OpenCVLoader.initDebug()) { Log.d("OpenCV", "Internal OpenCV librairy not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); } else { Log.d("OpenCV", "OpenCV librairy found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } } 

    E meu erro desapaireceu. Minha class de java atualizada está aqui .

    Links de reference:

    1. Inicialização assíncrona do OpenCV no Android usando OpenCVManager
    2. Tutorial1Activity.java

    Inicialize a biblioteca openCV na sua atividade adicione este código antes do método onCreate ()

      static { if (!OpenCVLoader.initDebug()) { // Handle initialization error } } }  static { if (!OpenCVLoader.initDebug()) { // Handle initialization error } } 

    adicione esta lib no seu projeto: https://github.com/hschott/Camdroid

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.