我的图像由2个相同的图像组成,其中一个是翻译过的。
现在,我想解决它。我使用了transform fourier的翻译属性:
$ f(x-x_0,y-y_0)\ leftrightarrowF(u,v)e ^ { - 2 {\ pi} i(ux_0 / {N} + vy_0 / M)} $
我测量了两幅图像之间的距离:x距离是24像素,y距离是4像素。在代码中:x_d和y_d。
然后我只是将频域图像中的所有像素除以公式+ 1中的指数表达式(1来自未翻译的图像)。
我无法弄清楚问题是什么......
这是我的代码:
elif 10 < score < 20:
结果如下:
result
任何帮助将不胜感激。 谢谢。
答案 0 :(得分:0)
为结果绘图添加了BW限制
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
FileName='/tmp/me4iX.jpg';
%--- Read Image ---
im = imread(FileName);
im=im(:,:,1)
%--- apply FFT on the given image ---
fftIm = (fft2(im));
%--- apply LOG and abs for plotting the transform ---
fLog = log(1 + abs(fftIm));
%----modify the image in the frequency domain-------
fftImMod=fftIm;
x_d=24; %x distance between the 2 images
y_d=4; %y distance between the 2 images
N = 305; %the dimensions of the image NxM = 305x305
M = 305; %the dimensions of the image NxM = 305x305
for r=1:size(fftIm,1)
for k=1:size(fftIm,2)
divisionVal(r,k) = 1+exp((-2*(pi)*1i)*((r-1)*y_d/N + (k-1)*x_d/M));
end;
end;
fftImMod=fftIm./divisionVal;
%--- apply LOG and abs for plotting the modified transform ---
fLogAfterMod = log(1 + abs(fftImMod));
%--- return to the image space ---
N=60;
result=ifft2((fftImMod([1:N end-N-2:end],[1:N end-N-2:end])));
% --- display results ---
colormap(gray)
subplot(2,2,1),imagesc(im); title('Original Image')
subplot(2,2,2),imagesc(fLog); title('Fourier Image')
subplot(2,2,3),imagesc(fLogAfterMod); title('Modified Fourier')
subplot(2,2,4),imagesc(abs(result)); title('Result Image')
%set(gca,'clim',[0 250])