Обнаружение и отслеживание объектов Matlab 2012a не работает

Я работаю над дипломным проектом по функциям локализации внутри помещений, но у меня нет проблем с обнаружением и отслеживанием объектов. Я использую MATLAB 2012a, но некоторые функции кода не работают, возможно, из-за старой версии программы. Не могли бы вы дать мне несколько советов? В частности, у меня проблемы с функциями showMatchedFeatures и estimateGeometricTransform. Это сообщение об ошибке:

Неопределенная функция showMatchedFeatures для входных аргументов типа SURFPoints.

Как я могу решить свою проблему, не загружая новую версию Matlab?

Это код:

`

boxImage = imread('img_box.png');
sceneImage = imread('img_desk.png');
I= rgb2gray (boxImage);
K= rgb2gray (sceneImage);

boxPoints = detectSURFFeatures(I)
scenePoints = detectSURFFeatures(K);

figure; imshow(I);
title('100 Strongest Feature Points from Box Image');
hold on;
plot(boxPoints.selectStrongest(100));

figure; imshow(K);
title('300 Strongest Feature Points from Scene Image');
hold on;
plot(scenePoints.selectStrongest(300));


[boxFeatures, boxPoints] = extractFeatures(I, boxPoints);
[sceneFeatures, scenePoints] = extractFeatures(K, scenePoints);

boxPairs = matchFeatures(boxFeatures, sceneFeatures);
matchedBoxPoints = boxPoints(boxPairs(:, 1), :);
matchedScenePoints = scenePoints(boxPairs(:, 2), :);
figure;
showMatchedFeatures(boxImage, sceneImage, matchedBoxPoints,matchedScenePoints, 'montage');
title('Putatively Matched Points (Including Outliers)');



[tform, inlierBoxPoints, inlierScenePoints] = ...
    estimateGeometricTransform(matchedBoxPoints, matchedScenePoints, 'affine');

boxPolygon = [1, 1;...                           % top-left
        size(boxImage, 2), 1;...                 % top-right
        size(boxImage, 2), size(boxImage, 1);... % bottom-right
        1, size(boxImage, 1);...                 % bottom-left
        1, 1];                   % top-left again to close the polygon

newBoxPolygon = transformPointsForward(tform, boxPolygon);

figure; imshow(sceneImage);
hold on;
line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');

end

`

Спасибо за помощь!


person Sere_na    schedule 30.01.2014    source источник
comment
Набор инструментов Computer Vision Toolbox установлен и лицензирован?   -  person Daniel    schedule 30.01.2014


Ответы (2)


Вы можете проверить набор инструментов компьютерного зрения и посмотреть, установлен он или нет. Потому что SURF нуждается в этом наборе инструментов. Возможно, я могу предложить вам использовать SIFT вместо Surf. Это легко реализовать. Вот ссылка, которая будет вам полезна.

Это ссылка, по которой вы можете скачать библиотеку

Вот ссылка на учебник

Это руководство поможет вам узнать больше о том, как можно использовать SIFT

Используйте команду ver в Matlab для проверки установленных наборов инструментов.

person user2867655    schedule 30.01.2014

Предполагая, что у вас установлен набор инструментов системы компьютерного зрения, вы можете использовать объект vision.GeometricTransformEstimator вместо функции estimateGeometricTransform.

Что касается showMatchedFeatures, то его легко реализовать с помощью imshowpair и plot.

Сказав это, с 2012a в набор инструментов было добавлено множество интересных функций, поэтому, возможно, стоит обновить его.

person Dima    schedule 12.02.2014