2015-05-16 3 views
0

Я пытаюсь использовать лапласиан в моем приложении:лапласиан OpenCV Android не работает

Bitmap result = source.copy(source.getConfig(), true); 
Utils.bitmapToMat(source, in); 
Imgproc.Laplacian(in, out, 3, 3, 1, 0); 
Utils.matToBitmap(out, result); 

Но я получаю следующее сообщение об ошибке:

E/cv::error()﹕ OpenCV Error: Assertion failed (src.type() == CV_8UC1 || src.type() == CV_8UC3 || src.type() == CV_8UC4) in void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean) 

ответ

1

Согласно documentationUtils.matToBitmap принимают только Mat из CV_8U глубины , В вашем примере вы указываете глубину вывода до CV_16S. Вы должны указать глубину вывода для Imgproc.Laplacian следующим образом:

Imgproc.Laplacian(in, out, CvType.CV_8U, 3, 1, 0); 
Utils.matToBitmap(out, result); 

См documentation для лапласиана.