Я использую OpenCV на Android, я хочу использовать OpenCV для обработки снимка, сделанного моей пользовательской камерой, ниже мой код:
//mOriginBitmap is taken by my custom camera.
mOriginMat = new Mat(mOriginBitmap.getHeight(), mOriginBitmap.getWidth(), CvType.CV_8UC4);
Utils.bitmapToMat(mOriginBitmap,mOriginMat);
mDestMat=new Mat(mOriginBitmap.getHeight(), mOriginBitmap.getWidth(), CvType.CV_8UC4);
Imgproc.GaussianBlur(mOriginMat,mDestMat,new Size(3,3),0);
Utils.matToBitmap(mDestMat,mDestBitmap);
mDestImage.setImageBitmap(mDestBitmap);
Заранее спасибо.
Дляболее подробно, ниже - исключение, бросить на Utils.bitmapToMat(mOriginBitmap,mOriginMat);
:
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1037)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: CvException [org.opencv.core.CvException: OpenCV(3.4.4) /build/3_4_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:38: error: (-215:Assertion failed) AndroidBitmap_lockPixels(env, bitmap, &pixels) >= 0 in function 'void Java_org_opencv_android_Utils_nBitmapToMat2(JNIEnv*, jclass, jobject, jlong, jboolean)'
]
at org.opencv.android.Utils.nBitmapToMat2(Native Method)
at org.opencv.android.Utils.bitmapToMat(Utils.java:93)
at org.opencv.android.Utils.bitmapToMat(Utils.java:102)
at com.example.dell.suppercamera.PictureActivity.onGaussianBlur(PictureActivity.java:103)