Я борюсь с совпадением шаблонов в домене Фурье в Matlab. Вот мои изображения (художник - РамаламаКурезы на DeviantArt):
Моя цель - разместить ограничительную рамку вокруг уха опоссума, как этот пример (где я выполнил сопоставление шаблонов с помощью normxcorr2):
Вот код Matlab, который я использую:
clear all; close all;
template = rgb2gray(imread('possum_ear.jpg'));
background = rgb2gray(imread('possum.jpg'));
%% calculate padding
bx = size(background, 2);
by = size(background, 1);
tx = size(template, 2); % used for bbox placement
ty = size(template, 1);
%% fft
c = real(ifft2(fft2(background) .* fft2(template, by, bx)));
%% find peak correlation
[max_c, imax] = max(abs(c(:)));
[ypeak, xpeak] = find(c == max(c(:)));
figure; surf(c), shading flat; % plot correlation
%% display best match
hFig = figure;
hAx = axes;
position = [xpeak(1)-tx, ypeak(1)-ty, tx, ty];
imshow(background, 'Parent', hAx);
imrect(hAx, position);
Код не функционирует должным образом - он не определяет правильный регион. Это неудачный результат - неправильная область помещена в коробку:
Это поверхностный график корреляций для неудачного совпадения:
Надеюсь, ты можешь помочь! Благодарю.