我有一个源代码可以识别图像中字符的位置。但是有一行代码我不明白为什么?
[r c]=size(mainImage);
% Why rotate 90 degree? why multyply? why??? :-??
splash = real(ifft2(fft2(mainImage) .* fft2(rot90(object, 2), r, c)));
thresh = max(splash(:))-10;
for i=1:r
for j=1:c
if splash(i,j)>=thresh
splash(i,j)=1;
else
splash(i,j)=0;
end
end
end
最佳答案
我的 FFT 知识有点生疏,但我认为这本质上是在计算 cross-correlation .
频域中的乘法相当于convolution在空间/时间域中。互相关相当于与反转信号的卷积——这就是 180° 旋转试图做的事情。在我微醉的头脑中,我不能说这个特定的实现是否应该有效。
Matlab 具有直接计算互相关的函数,但它们可能驻留在此代码的作者(或预期用户)无法使用的工具箱中。
关于matlab - Matlab 中基于傅里叶的字符识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174224/