Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用apple Accelerate框架选择真实与复杂2D FFT_Iphone_Fft - Fatal编程技术网

Iphone 使用apple Accelerate框架选择真实与复杂2D FFT

Iphone 使用apple Accelerate框架选择真实与复杂2D FFT,iphone,fft,Iphone,Fft,是否有人可以建议使用正确的FFT(实FFT或复FFT)?我已经看过了,但仍然有问题 我想做图像关联,以确定主图像中子图像的位置。我了解FFT和IFFT的基本知识 该计划: 对主图像执行FFT。512x512 取子像的复共轭 对子图像执行FFT。30x30,但用零填充至512x512 将两个结果矩阵进行复数相乘 对结果执行iFFT 即使结果(大部分)是真实的,也要考虑结果矩阵的大小 寻找对应于最大相关性的最大值 我很难得到预期的结果 如果我使用真正的2d fft(vDSP_fft2dzrip),结

是否有人可以建议使用正确的FFT(实FFT或复FFT)?我已经看过了,但仍然有问题

我想做图像关联,以确定主图像中子图像的位置。我了解FFT和IFFT的基本知识

该计划:

  • 对主图像执行FFT。512x512
  • 取子像的复共轭
  • 对子图像执行FFT。30x30,但用零填充至512x512
  • 将两个结果矩阵进行复数相乘
  • 对结果执行iFFT
  • 即使结果(大部分)是真实的,也要考虑结果矩阵的大小
  • 寻找对应于最大相关性的最大值 我很难得到预期的结果

    如果我使用真正的2d fft(vDSP_fft2dzrip),结果是压缩格式的,这使得使用vDSP_zvmul乘法到两个结果矩阵非常困难

    如果我使用复数fft(vDSP_fft2dzip),我根本无法得到任何相关性

    苹果示例和大多数音频示例对前向FFT的结果没有任何影响,只是进行了反向运算


    有人能帮我开始图像相关吗?第一个问题…我可以使用复数FFT并避免压缩格式吗?

    实数FFT和复数FFT之间的唯一区别是,通过使用一种巧妙的压缩方案,将2^n实数FFT转换为2^(n-1)复数FFT,实数FFT的效率会稍微提高。两种情况下的结果应该相同。所以如果我是你的话,为了简单起见,我会坚持使用复杂的FFT,至少在一切正常之前


    您是否也查看了vImageConvolve_argb888?它似乎做了你想做的事情,但却少了很多努力:)

    我试图在不确定的环境中识别街道标志,当我尝试Vimage时,将图像的白色区域卷积到目标图像上。我不确定如何规范化卷积,因此决定尝试频域方法。
    vImageConvolve
    函数肯定会使用频域实现,这是实现非平凡图像算法的唯一实用方法。也许你可以试试浮点变量,或者先缩放你的图像?VimageConvalve的文档说它是在做内核(x,y)*像素(x,y)/mxn的和。我相信它是在空间模式下进行卷积的。它在大图像上滑动目标,并计算每个点的平均值。白色区域将覆盖局部区域和局部区域。我在两幅图像上都尝试了Sobel边缘检测,但树的边缘太多,因此也不起作用。无论是在空间域还是频域执行该算法,结果几乎完全相同。唯一的区别是到达那里所需的时间。原来的问题得到了回答。如果您不担心速度,那么使用“真实”FFT没有任何优势。