I am using Opencv in android and I want to load an image from gallery to Mat , please check my code and help in what I did wrong?
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult( requestCode, resultCode, data ); if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK) { Uri imageUri = data.getData(); String selectedImagePath = getPath(imageUri); Mat imgRgba = Imgcodecs.imread( selectedImagePath ); Mat img = new Mat(); imgRgba.copyTo(img); } private String getPath(Uri imageUri) { String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query( imageUri, projection, null, null, null ); if(cursor!=null){ int column_index = cursor.getColumnIndexOrThrow( MediaStore.Images.Media.DATA ); cursor.moveToFirst(); return cursor.getString( column_index ); } return imageUri.getPath(); } When I run it it crashes with : java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.imgcodecs.Imgcodecs.imread_1(java.lang.String) (tried Java_org_opencv_imgcodecs_Imgcodecs_imread_11 and Java_org_opencv_imgcodecs_Imgcodecs_imread_11__Ljava_lang_String_2) at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method) at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:118)
Mat? Are you getting an exception? Are you getting image of Justin Bieber, while readingLena.png?Mat imgRgba = Imgcodecs.imread( selectedImagePath );it saysjava.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.imgcodecs.Imgcodecs.imread_1(java.lang.String) (tried Java_org_opencv_imgcodecs_Imgcodecs_imread_11 and Java_org_opencv_imgcodecs_Imgcodecs_imread_11__Ljava_lang_String_2) at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method) at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:118)ImgCodecs.javafile in your project(tap double shift, Android Studio shortcut to search file). In that file search forimread()method, to see if it is present? and also note the signature of that method.Imgcodecs.imread()is not :/public static Mat imread(String filename, int flags) { Mat retVal = new Mat(imread_0(filename, flags)); return retVal; }