【问题标题】:FFT and convolutionFFT 和卷积
【发布时间】:2012-12-10 12:01:53
【问题描述】:

我正在为使用图像过滤的学校 2dFFT 写作。 我对过滤矩阵有疑问。 我做了我的 fft,所以它接受 2^n 输入,并且所有过滤矩阵都是奇数。

所以我需要解决方案以某种方式将过滤器矩阵转换为我的函数可接受的输入。

我有下一个想法,但我不确定它会如何工作。 如果我有过滤矩阵:

1 2 3
4 5 6
7 8 9

将其转换为:

0 0 0 0
1 2 3 0
4 5 6 0
7 8 9 0

当我将矩阵的“中心”与我的像素匹配时,匹配“子矩阵”的中心,然后提取我需要的值。 这可能吗?

还有谁能告诉我过滤器的最大尺寸是多少?它比我们说的 32x32 大吗?

【问题讨论】:

    标签: c image-processing cuda fft


    【解决方案1】:

    过滤器掩码用于表达具有紧凑支持的过滤器。紧凑支持意味着信号仅在有限范围内具有非零值。通过使用零值扩展您的过滤器掩码,您实际上是在做一件很自然的事情。零是原始过滤器的一部分。

    然而,真正的问题是另一回事。我假设您根据convolution theorem 使用 FFT。为此,您需要逐元素乘法。当您的滤波器和信号具有相同数量的元素时,您只能进行元素乘法。因此,您需要将过滤器扩展到信号大小(使用零)。

    滤镜蒙版大小没有限制。对于卷积,唯一的限制是紧凑支持(如上所述)。

    【讨论】:

    • 信号大小是什么意思?
    • 在您的情况下,它是图像的维度。如果你有一个 256x256 的图像,你需要一个 256x256 的过滤器来通过 FFT 进行卷积。
    • 我想做 n 个小 fft(大矩阵的一部分,每个像素都有过滤器)。我如何只用一个大的 fft 来获得每个像素的值?我是新来的。
    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2013-04-11
    • 2011-11-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多