我的代码如下所示:
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.image1);
int width = b.getWidth();
int height = b.getHeight();
Mat tmp = new Mat (width, height, CvType.CV_8UC3);
Mat tmp2 = tmp.clone();
Utils.bitmapToMat(b, tmp);
Imgproc.bilateralFilter(tmp,tmp2,10,50,10);
并提供以下错误,
OpenCV错误:断言失败((src.type()== CV_8UC1 || src.type()== CV_8UC3)&& src.data!= dst.data)void cv :: bilateralFilter_8u(const cv :: Mat&,cv :: Mat&,int,double,double,int),file /Volumes/Linux/builds/master_pack-android/opencv/modules/imgproc/src/smooth.cpp,line 3145
我可以问我的代码有什么问题,非常感谢!!
答案 0 :(得分:0)
我遇到了同样的问题,经过一些阅读文档后,我找到了解决方案。您从位图读取的Mat没有类型8UC1或8UC3,因此您应该将其转换为8UC3
Imgproc.cvtColor(originalMat,originalMat,Imgproc.COLOR_BGRA2BGR);
现在你可以使用bilateralFilter:)