首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入参数的denoise_TVL1大小不匹配

输入参数的denoise_TVL1大小不匹配
EN

Stack Overflow用户
提问于 2021-12-31 23:49:42
回答 1查看 119关注 0票数 0

我试图在灰度视频上实现全变分算法。据我所知,这种方法(Denoise_TVL1)正在使用该算法。但是我得到了“输入参数的大小不匹配”CvException。你能帮我理解一下是什么问题吗?

我把这个列表作为类实例:

代码语言:javascript
复制
public static List<Mat> test = new ArrayList<Mat>();
代码语言:javascript
复制
// src is Mat obj given as parameter
Mat resizedSrc = new Mat();
Size scaleSize = new Size(960,540);
Imgproc.resize(src, resizedSrc, scaleSize);
Mat dst = new Mat(scaleSize, resizedSrc.type());

// On first frame I add resized image to my list, because denoise_TVL1 requirest list as input
// I also tried it without if condition
if(test.isEmpty()){
            test.add(resizedSrc);
}
//On this line I get CvException
Photo.denoise_TVL1(test, dst);

// Then I return filtered image
MatOfByte buffer2 = new MatOfByte();
Imgcodecs.imencode(".png", dst, buffer2);       
return new Image(new ByteArrayInputStream(buffer2.toArray()));

准确输出:

线程“C:\build\master_winpack-bindings-win64-vc14-static\opencv\modules\core\src\arithm.cpp:669:应用程序线程”中的异常:cv::异常: OpenCV(4.5.1) CvException错误:(-209:输入参数大小不匹配)操作既不是‘数组op数组’(其中数组具有相同的大小和相同的通道数),也不是‘数组op标量’,也不是函数'cv::arithm_op‘中的“标量数组”。

它说输入不匹配,但它们总是相同的,特别是如果条件,我总是只发送第一个帧作为列表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-01 12:30:20

我注意到Mat类型是CV_8UC3型。在将类型转换为CV_8UC1之后,它现在可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70546280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档