android - 为什么opencv的降噪功能不起作用
问题描述
我是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
推荐阅读
- python - 想要在 PDF 文档中保存多个绘图
- java - Mapstructs 在 MapperImpl 中生成错误代码
- python - 如何在python中使用和号对数学表达式进行排序
- objective-c - NSString 到 const void *
- python - 使用正则表达式仅打印字符串中的字母
- angular - Angular-Protractor-Headless Chromium:使用 APP_INITIALIZE 时,在页面上找不到 Angular
- c# - 在c#中抛出404去customerror.aspx没有302和301
- react-native - 如何在手机上下载资产并在 React Native 应用程序中使用它
- pyomo - 如何将 bonmin 添加到 pyomo 求解器?
- php - 登录仅在谷歌浏览器上无法在我的网站上工作