Найдите местоположение объекта в изображении Используя сравнение с шаблонами

Считайте ссылочное изображение и изображение шаблона в рабочее пространство MATLAB.

img = imread('stopSignTest.jpg');
tempImg = imread('vipwarningsigns_stop_template.png');

Отобразите изображения. Ссылочное изображение является сценой, содержащей плату знака Стоп. Шаблон является низким изображением пространственного разрешения платы знака Стоп.

figure
imshow(img)
title('Reference Image')
figure
imshow(tempImg)
title('Template')

Откройте модель Simulink®.

modelname = 'ex_blktemplatematching.slx';
open_system(modelname)

Модель читает изображения при помощи блока Image From Workspace. Чтобы выполнить сравнение с шаблонами, необходимо сначала преобразовать входные цветные изображения в изображения интенсивности при помощи блока Color Space Conversion. Затем найдите местоположение изображения шаблона в ссылочном изображении при помощи Template Matching блок с этими значениями параметров:

  • Метрика соответствия - Sum of absolute differences

  • Вывод - Best match location

  • Метод поиска - Three-step

Template Matching блок выводит местоположение в ссылочном изображении, для которого пиксельные области вокруг этого лучше всего соответствует с изображением шаблона.

Запустите модель.

out = sim(modelname);

Считайте выходное значение.

location = out.simout;

Нарисуйте круг, чтобы подсветить область вокруг лучшего пиксельного местоположения соответствия. Отобразите результаты.

img = insertShape(img,'circle',[location(1) location(2) 20]);
figure
imshow(img);
hold on
plot(location(1),location(2),'*r')
title('Results of Template Matching')