我试图通过使用傅里叶描述符来区分 Matlab 中图像的形状。我想要做的是: 1.为每个图像生成傅里叶描述符;2. 计算这些傅里叶描述符之间的欧几里得距离以比较形状。
我的问题是我不能使计算傅里叶描述符的结果对几何变换不敏感(例如旋转和缩放)。
我现在使用的代码是“Gonzales matlab 版本”,这个链接中的那个。我试图通过这样做来规范化结果:
% Normalization
DC = f(1);
f = f(2:11); % getting the first 20 & deleting the dc component
f = abs(f) ; % use magnitudes to be invariant to translation & rotation
f = f/DC; % devide the fourier coeffients by the DC-coefficient to be invariant to scale
但我不认为它按我预期的那样工作。如果我改变同一图像的方向或比例,结果会有所不同。
我被这个问题困住了几天。我将不胜感激任何建议,提前谢谢大家!