当前位置: 代码迷 >> Android >> 为什么opencv的降噪功能不起作用
  详细解决方案

为什么opencv的降噪功能不起作用

热度:95   发布时间:2023-08-04 12:51:35.0

我是opencv的初学者,所以如果我的问题很愚蠢,请原谅。基本上我是在用opencv函数来探索他们的工作,但是其中一个函数是Photo.fastNlMeansDenoising(mat,mat); 不工作,我不明白为什么。 根据错误,这表明我们只能使用CV1,CV2 and CV3 ,但我仍然遇到错误。

我也尝试过但不能解决我的问题。

谁能帮我解决这个问题?

码:

Mat tmp = new Mat (bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC3);

            Utils.bitmapToMat(bitmap, tmp);


            Photo.fastNlMeansDenoising(tmp,tmp);


            Utils.matToBitmap(tmp,bitmap);

错误:

 CvException [org.opencv.core.CvException: cv::Exception: /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/photo/src/denoising.cpp:78: error: (-5) Unsupported image format! Only CV_8UC1, CV_8UC2 and CV_8UC3 are supported in function void cv::fastNlMeansDenoising(cv::InputArray, cv::OutputArray, float, int, int)
]
    at org.opencv.photo.Photo.fastNlMeansDenoising_0(Native Method)
    at org.opencv.photo.Photo.fastNlMeansDenoising(Photo.java:57)
    at opengl.community.myopencvexample.MainActivity$3.onClick(MainActivity.java:83)
    at android.view.View.performClick(View.java:4478)
    at android.view.View$PerformClick.run(View.java:18698)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)

尝试更新您的库,如果您使用的是2.x,则将解决您的问题,然后将其更新为opencv 3.0

  相关解决方案