2014-05-25 20:15:39 -0600 received badge ● Editor (source) 2014-05-25 20:12:05 -0600 asked a question Completely black image after inverse DFT on GPU Hello, I'm doing some image deconvolution using the OpenCV GPU libraries. I successfully perform DFTs on my image and my kernel and then use the mulSpectrums function for the deconvolution. I'm now attempting to recover the deconvolved image so I can write it back out to a file, but the result of doing an inverse DFT on the deconvolved image gives me a completely black image. I've had a look at this question and tried the solutions in there, but alas with no results. The relevant part of my code is as below. If anyone could take a look and help me figure out what I'm doing wrong, that'd be great! //DFT the image cout << filepath << ": performing DFT" << endl; GpuMat dftImageG = GpuMat(Mat::zeros(complexImageG.size(), CV_32FC2)); gpu::dft(complexImageG, dftImageG, dftImageG.size()); complexImageG.release(); GpuMat newKernelG; newKernelG.upload(tempKernel); //Perform the deconvolution. cout << filepath << ": deconvolving" << endl; gpu::mulSpectrums(dftImageG, newKernelG, dftImageG, 0); newKernelG.release(); //Perform an inverse DFT to get an image back. cout << filepath << ": performing inverse DFT" << endl; GpuMat inverseDFT = GpuMat(Mat::zeros(dftImageG.size(), CV_32FC1)); gpu::dft(dftImageG, inverseDFT, inverseDFT.size(), DFT_REAL_OUTPUT | DFT_SCALE | DFT_INVERSE); dftImageG.release();  Edit: The kernel is already DFTed, even if it's not shown here.