Объявления

21.01.2022

21.01.2022

von Артем Маковецкий -
Anzahl Antworten: 0

% поиск в изображении
clear;
clf;
x = imread("C:/Octave/1.jpg");
y = imread("C:/Octave/2.jpg");
x = rgb2gray(x);
y = rgb2gray(y);
[hx, wx] = size(x);
[hy, wy] = size(y);
hz = hx + hy + 1;
wz = wx + wy + 1;
for i = 1:hz
for j = 1:wz
if i <= hx && j <= wx
x1(i, j) = x(i, j);
else
x1(i, j) = 0;
endif
endfor
endfor
for i = 1:hz
for j = 1:wz
if i <= hy && j <= wy
y1(i, j) = y(i, j);
else
y1(i, j) = 0;
endif
endfor
endfor
X1 = fft2(x1);
Y1 = fft2(y1);
for i = 1:hz
for j = 1:wz
% свёртка
%Z1(i, j) = X1(i, j) * Y1(i, j);
% корелляция
Z1(i, j) = X1(i, j) * conj(Y1(i, j));
%Z1(i, j) = X1(i, j) * Y1(i, j);
endfor
endfor
z1 = ifft2(Z1);
z1 = real(z1);
for i = 1:hx
for j = 1:wx
z(i, j) = z1(i, j);
endfor
endfor
mx = z(1, 1);
zi = 1;
zj = 1;
for i = 1:hx
for j = 1:wx
if (z(i, j) > mx)
mx = z(i, j);
zi = i;
zj = j;
endif
endfor
endfor
for i = zi:zi+hy
for j = zj:zj+wy
if (abs(i - zi) < 3 || abs(j - zj) < 3 || abs(i - (zi+hy)) < 3 || abs(j - (zj+wy)) < 3)
x(i, j) = 255;
endif
endfor
endfor
imshow(x, []);
%imshow(z, []);