【发布时间】:2012-05-06 08:23:08
【问题描述】:
我正在尝试构建一个简单的系统来使用傅里叶描述符识别简单的形状:
我正在我的程序中使用这种快速傅立叶变换的实现:(下面的链接)
http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29
fft(double[] inputReal, double[] inputImag, boolean direction)
输入是:real 和 imag 部分(本质上是我拥有的边界参数的 x,y 坐标) 和输出是转换后的实数和虚数。
问题:如何使用输出(变换的 real,imag )作为我的简单形状的不变描述符?
这就是我的想法:
- 每N步计算
R = sqrt( real^2 + imag^2 )。 - 将每个
R除以R[1]= 标准化因子使其不变。
问题是对于稍微不同的图像(例如应用轻微旋转等),我得到非常不同的 R 值
换句话说:
我的描述符不是一成不变的......我认为我在获取 R 值方面做错了。
【问题讨论】:
-
傅立叶级数的精彩网站,一定要看看Fourier Series
标签: java fft feature-detection