小编Ste*_*fen的帖子

向前FFT FFT图像并向后FFT图像以获得相同的结果

我正在尝试使用http://www.fftw.org/中的库来FFT图像,以便我可以在频域中进行卷积.但我无法弄清楚如何让它发挥作用.为了理解如何做到这一点,我试图将FFT图像转发为像素颜色数组,然后反向FFT,得到相同的像素颜色数组.这是我做的:

fftw_plan planR, planG, planB;
fftw_complex *inR, *inG, *inB, *outR, *outG, *outB, *resultR, *resultG, *resultB;

//Allocate arrays.
inR = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);
inG = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);
inB = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);

outR = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);
outG = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);
outB = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);

resultR = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * width * width);
resultG = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * …
Run Code Online (Sandbox Code Playgroud)

c c++ fft image-processing fftw

8
推荐指数
1
解决办法
5394
查看次数

高斯模糊和FFT

我正在尝试为学校项目实施高斯模糊.我需要制作CPU和GPU实现来比较性能.

我不太清楚我是否理解高斯模糊是如何工作的.所以我的一个问题是我是否理解正确?

以下是我现在所做的事情:我使用维基百科http://en.wikipedia.org/wiki/Gaussian_blur中的等式来计算过滤器.对于2D,我采用图像中每个像素的RGB,并通过将像素的RGB和周围像素与相关的滤波器位置相乘来应用滤波器.然后将它们相加为新的像素RGB值.对于1d我首先水平地应用滤波器,然后是静态地应用滤波器,如果我理解正确的话,这应该给出相同的结果.这个结果与应用2d滤波器的结果完全相同吗?

我的另一个问题是如何优化算法.我已经读过快速傅立叶变换适用于高斯模糊.但我无法弄清楚如何联系它.有人能给我一个正确方向的暗示吗?

谢谢.

fft image-processing gaussian blur

3
推荐指数
1
解决办法
6040
查看次数

标签 统计

fft ×2

image-processing ×2

blur ×1

c ×1

c++ ×1

fftw ×1

gaussian ×1