2011-11-30 64 views
0

我试图使一个单一的通灵图像的DFT,并作为cvDft期待复杂的价值观,我劝原始图像与全0所以这最后一个其他图像合并会被视为虚构部分。使用cvmerge功能时不能与cvMerge转换,DFT

我的问题来了,

Mat tmp = imread(filename,0); 

if(tmp.empty()) 
    {cout << "Usage: dft <image_name>" << endl; 
    return -1;} 
Mat Result(tmp.rows,tmp.cols,CV_64F,2); 
Mat tmp1(tmp.rows,tmp.cols,CV_64F, 0); 
Mat image(tmp.rows,tmp.cols,CV_64F,2); 
cvMerge(tmp,tmp1,image);` 

它给了我一个错误:不能转换到与CvMat cvArr

任何人都可以帮助我吗?谢谢!

回答

1

1)好像你混淆了两种不同风格的OpenCV的代码 cv::Mat( - MAT)是OpenCV的新版本的C++类,cvMerge是从旧版本的OpenCV的C函数。的

而是采用cvmerge使用merge

2)你想合并CV_8U型(可能是一个矩阵(tmp))与CV_64F 使用convertTo得到TMP为CV_64F

3)为什么你Result & image垫(目的地垫)是初始化为cv::Scalar(2)?我认为你滥用了配置参数。有关更多信息,请参阅here

4)你image垫是单通道垫子,你想让它作为一个2路垫(如问题提到的),变更申报

Mat image(tmp.rows,tmp.cols,CV_64FC2); 
+0

好,非常感谢,我我会继续尝试,我会让你更新。再次感谢 –

+0

不客气,享受。如果答案解决了您的问题,请点击答案分数下的V标记接受答案。 – Boaz

相关问题