Matlab中的模式识别

首先,我不确定这是提出这个问题的正确位置,但我对图像处理有疑问。 我正在尝试在Matlab中编写模式识别代码。我有一个256x256像素的对象输入原始数据包含“ABCD”大写字母和一个256x256像素的过滤器原始数据包括“A”大写字母和整个字母在相同的维度。我的代码将是: 首先阅读这两个原始数据 matlab中的文件显示这些图像 采取对象和过滤器的二维傅里叶变换,显示 这些图像 取过滤器的共轭, 乘以它们 采取4维的二维傅里叶变换, 显示5的输出。 该代码旨在找到输入和输出中A的自相关。在这样做时,滤波器中B,C,D和A之间的交叉相关将在输出中,但它们的强度将小于A的自相关。 简单地说,在这段代码中,我们尝试使用卷积方法而不是相关性,并在频域中执行此操作。 我编写了一个代码,但它无法正常工作,尤其是输出图像不正确。 我还寻找正确的函数将原始文件加载到Matlab中。 我的代码:
%%%EE 520 HW 3
%%%Problem # 2
clear all; close all; clc;
load fA258.mat;
load fO.mat;
figure(1)
subplot(211)
imshow(o)
title('Image of the OBJECT');
subplot(212)
imshow(fa)
title('Image of the FILTER');
F=fft2(fa,256,256);
F1=fftshift(F);
F2=log(abs(F));
O=fft2(o,256,256);
O1=fftshift(O);
O2=log(abs(O));
f1=ifft2(F);
o1=ifft2(O);
figure(2)
subplot(211);
imshow(o1);
title('Check for Object');
subplot(212)
imshow(f1);
title('Check for Filter');
figure(3)
subplot(211)
imshow(log(abs(fftshift(O)) + 1), [])
title('FT of Object'); 
subplot(212)
imshow(log(abs(fftshift(F)) + 1), []) 
title('FT of Filter');
Fc=conj(F1);
Y=O1.*Fc;
y=fft2(Y);
figure(4)
subplot(211)
imshow(log(abs(fftshift(y)) + 1), [])
title('Output');
subplot(212)
imshow(y)
谢谢。     
已邀请:
您想在步骤5中进行逆傅立叶变换。     

要回复问题请先登录注册