Hi all,
I have a set of images that are taken from the dash cam of a car. I am trying to find a set of corresponding points in two successive frames to estimate the direction of the car. (I will use this information to obtain the visual odometry of the car). I used the match features code given here: https://www.mathworks.com/help/vision/ref/matchfeatures.html
But sometimes I am getting wrong matches. For example:
My function:
function [matchedPoints1, matchedPoints2] = Corresponding_Points(Im1,Im2) %%Find Corresponding Interest Points Between Pair of Images
% Find the corners.
points1 = detectHarrisFeatures(Im1); points2 = detectHarrisFeatures(Im2); % Extract the neighborhood features.
[features1,valid_points1] = extractFeatures(Im1,points1); [features2,valid_points2] = extractFeatures(Im2,points2); % Match the features.
indexPairs = matchFeatures(features1,features2); % Retrieve the locations of the corresponding points for each image.
matchedPoints1 = valid_points1(indexPairs(:,1),:); matchedPoints2 = valid_points2(indexPairs(:,2),:); end
My code:
[matchedPoints1, matchedPoints2] = Corresponding_Points(image_1_gray,image_2_gray); x1 = matchedPoints1.Location'; x2 = matchedPoints2.Location';
Note: the returned matchedPoints1 and matchedPoints2 belong to class cornerPoints . Using matchedPoints1.Location returns a matrix type single. (I am using Matlab 2016a.)
Thanks!
Best Answer