我正在尝试使用gpu :: split分割2通道GpuMat。以下是我的代码
gpu::GpuMat gpu_zeros; gpu_zeros.upload(Mat::zeros(Size(J,I), CV_32F));
gpu::GpuMat splitted_gpu[] = {gpu_zeros,gpu_zeros};
gpu::split(complex_gpu,splitted_gpu); // Here complex_gpu is a 2 channel GpuMat.
// Downloading the splitted GpuMat to check the results
Mat t1,t2;
splitted_gpu[0].download(t1);
splitted_gpu[1].download(t2);
但是当我检查t1和t2时,它们都有complex_gpu GpuMat的通道2。缺少通道1数据。
我做错了什么吗?有没有办法解决这个问题?
注意:我在mexFunctions中使用它们。 Opencv版本是2.4
答案 0 :(得分:3)
感谢tip scap3y。 问题在于初始化。
当用下面的代码替换前两行时,问题就解决了。
gpu :: GpuMat splitted_gpu [2];