断言失败MattoBitmap OpenCv android

几天来我一直在遇到此错误,在android java中尝试从ImgProc.FloodFill执行opencv时断言失败。

代码:

bitmap = textureView.getBitmap();

if (bitmap == null)
    return;

mat = new Mat();
Mat flooded = new Mat();

bitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);

Utils.bitmapToMat(bitmap,mat);
// Utils.bitmapToMat(bitmap,flooded);

Imgproc.cvtColor(mat,mat,Imgproc.COLOR_RGBA2RGB);
//processImage(mat);


Imgproc.floodFill(mat,flooded,new Point(1,1),new Scalar(255,255,255),new Rect(),new Scalar(2,2,2),4);
//bitmap = getResizedBitmap(bitmap,flooded.rows(),flooded.cols());

Utils.matToBitmap(flooded,bitmap);

错误:

E/cv::error(): OpenCV(3.4.5) Error: Assertion failed (src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols) in void Java_org_opencv_android_Utils_nmatToBitmap2(JNIEnv*,jclass,jlong,jobject,jboolean),file /build/3_4_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp,line 101
E/org.opencv.android.Utils: nmatToBitmap caught cv::Exception: OpenCV(3.4.5) /build/3_4_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:101: error: (-215:Assertion failed) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function 'void Java_org_opencv_android_Utils_nmatToBitmap2(JNIEnv*,jboolean)'
E/AndroidRuntime: FATAL EXCEPTION: OpenCVAnalysis
    Process: com.hololo.tutorial.sample,PID: 1591
    CvException [org.opencv.core.CvException: OpenCV(3.4.5) /build/3_4_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:101: error: (-215:Assertion failed) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function 'void Java_org_opencv_android_Utils_nmatToBitmap2(JNIEnv*,jboolean)'
    ]
        at org.opencv.android.Utils.nmatToBitmap2(Native Method)
        at org.opencv.android.Utils.matToBitmap(Utils.java:123)
        at org.opencv.android.Utils.matToBitmap(Utils.java:132)
        at com.hololo.tutorial.sample.MagicalCamera.MagicCamera$4.analyze(MagicCamera.java:314)
        at androidx.camera.core.ImageAnalysis$2.onImageAvailable(ImageAnalysis.java:291)
        at androidx.camera.core.AndroidImageReaderProxy$1.onImageAvailable(AndroidImageReaderProxy.java:105)
        at android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:812)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.os.HandlerThread.run(HandlerThread.java:65) 

我尝试过的操作:由于掩码需要具有rows+2cols +2 ,所以断言失败了,我尝试将Mask初始化为具有2+行和2+列,但在应用FloodFill并尝试使用Utils.Mattobitmap之后, 它使断言失败

(src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols)

表示mat的大小与bitmap的大小不同。我试图转换为或mat尺寸不是2。有什么想法吗?

hyc8015 回答:断言失败MattoBitmap OpenCv android

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3139689.html

大家都在问