matlab - Matlab 中基于傅里叶的字符识别

标签 matlab detection image-recognition fft

我有一个源代码可以识别图像中字符的位置。但是有一行代码我不明白为什么?

[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/

相关文章:

variables - 在 MATLAB 中使用 sprintf 显示变量的小数

MATLAB:从双数组到元胞数组的矢量化赋值

java - 通过 Java servlet 检测操作系统或计算机名称

image-processing - 在二进制图像中检测破损的有缺陷的 cookies

opencv - 使用BRISK检测器/描述符OpenCV的性能问题

java - 如何检测JPEG图像上的基本2D几何形状(例如正方形,三角形,圆形)?

matlab - 矩形嵌套 - 使用模拟退火收敛到最优解

matlab - 如何在 MATLAB 中将移动窗口应用于二维矩阵?

php - 如果是移动设备/平板电脑,请替换 css

iphone - 在拍摄之前通知或检测屏幕截图?