Matlab 2012a Object Detection and Tracking doesn't work

I'm working on my thesis project on indoor localization features but I have no problems with regard to object detection and tracking . I am using MATLAB 2012a, but some functions of the code do not work, probably because of the old version of the program. Could you give me some advice? In particular I have problems with the functions of showMatchedFeatures and estimateGeometricTransform. This is the error message:

Undefined function 'showMatchedFeatures' for input arguments of type 'SURFPoints'.

How can I solve my problem without having to download the new version of Matlab?

This is the code:

`

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

`

Thank you for your help!

Answers


You can check the computer vision toolbox and see whether it is installed or not. Because SURF needs that toolbox. Probably I can suggest u to use SIFT instead of Surf. It is easy to implement. Here is a link that will be useful for you.

This is a link where you can download the library

Here is the tutorial link

This tutorial will help u more on how SIFT can be used

Use ver command in matlab to check for the installed toolboxes


Assuming that you have the Computer Vision System Toolbox installed you can use the vision.GeometricTransformEstimator object instead of the estimateGeometricTransform function.

As for showMatchedFeatures, it is easy to implement using imshowpair and plot.

Having said that, lots of cool functions have been added to the toolbox since 2012a, so it may well be worth to upgrade.


Need Your Help

Chd 5.4.0 issues with map and reduce

hadoop bigdata cloudera

I have a problem when I'm executing a simple query (something like select * from tablex) in Hive always show

Inputing Integers error throwing

java input error-handling integer try-catch

Can someone help me make this code neater. I would rather use parse int than a buffer reader. I want my code to loop until the user inputs a number. I couldn't figure out how to do this without the...