Я пытаюсь обнаружить лифты на планах этажей в MATLAB. Код, который у меня есть сейчас, не обнаруживает лифты, а просто указывает на края изображения. Я ожидаю обнаружить все лифты на плане этажа. Лифты представлены квадратом или прямоугольником с x
внутри, как на изображении шаблона. Я приложил шаблон, изображение и скриншот результата.
Изображение шаблона:
Изображение:
Результаты:
Код:
template= rgb2gray(imread('ele7.png'));
image = rgb2gray(imread('floorplan.jpg'));
%imshowpair(image,template,'montage')
c = normxcorr2(template,image);% perform cross-correlation
figure, surf(c), shading flat
[ypeak, xpeak] = find(c==max(c(:)));%peak of correlation
%Compute translation from max location in correlation matrix, =padding
yoffSet = ypeak-size(template,1);
xoffSet = xpeak-size(template,2);
%Display matched area
figure
hAx = axes;
imshow(image,'Parent', hAx);
imrect(hAx, [xoffSet+1, yoffSet+1, size(template,2), size(template,1)]);