【发布时间】:2011-08-02 11:53:05
【问题描述】:
我正在尝试在频域中实现傅立叶变换。
我相应地使用了getOptimalDFTSize,并将图像和蒙版复制到更大的图像中,适合傅立叶变换。我使用来自here 的示例代码作为参考。
现在,我必须分离实部和虚部,并执行图像虚部与掩模虚部的像素乘法,实部也是如此。但是当我尝试这样做时,我收到以下错误消息:
OpenCV 错误:断言失败 (type == srcB.type() && srcA.size() == srcB.size()) 在 mulSpectrums,文件 /build/buildd/opencv-2.1.0/src/cxcore/ cxdxt.cpp,第 1855 行 /build/buildd/opencv-2.1.0/src/cxcore/cxdxt.cpp:1855: 错误: (-215) type == srcB.type() && srcA.size() == srcB.size() in function多光谱
代码如下:
//fourier transfromation of real and imaginary part
Mat complex_image, real_image, complex_mask, real_mask;
cv::dft(new_image, complex_image, DFT_COMPLEX_OUTPUT);
cv::dft(new_image, real_image, DFT_REAL_OUTPUT);
cv::dft(new_mask, complex_mask, DFT_COMPLEX_OUTPUT);
cv::dft(new_mask, real_mask, DFT_REAL_OUTPUT);
//pixelwise multiplication
Mat multiplied_complex, multiplied_real;
cv::mulSpectrums(complex_image, complex_mask, multiplied_complex, DFT_COMPLEX_OUTPUT );
cv::mulSpectrums(real_image, real_mask, multiplied_real, DFT_REAL_OUTPUT);
我在这里做错了什么?
【问题讨论】:
标签: opencv