www.gusucode.com > vision 源码程序 matlab案例代码 > vision/EstimateEssentialMatrixFromAPairOfImagesExample.m
%% Estimate Essential Matrix from A Pair of Images % %% % Load precomputed camera parameters. load upToScaleReconstructionCameraParameters.mat %% % Read and undistort two images. imageDir = fullfile(toolboxdir('vision'),'visiondata',... 'upToScaleReconstructionImages'); images = imageDatastore(imageDir); I1 = undistortImage(readimage(images,1),cameraParams); I2 = undistortImage(readimage(images,2),cameraParams); I1gray = rgb2gray(I1); I2gray = rgb2gray(I2); %% % Detect feature points each image. imagePoints1 = detectSURFFeatures(I1gray); imagePoints2 = detectSURFFeatures(I2gray); %% % Extract feature descriptors from each image. features1 = extractFeatures(I1gray,imagePoints1,'Upright',true); features2 = extractFeatures(I2gray,imagePoints2,'Upright',true); %% % Match features across the images. indexPairs = matchFeatures(features1,features2); matchedPoints1 = imagePoints1(indexPairs(:,1)); matchedPoints2 = imagePoints2(indexPairs(:,2)); figure showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2); title('Putative Matches') %% % Estimate the essential matrix. [E,inliers] = estimateEssentialMatrix(matchedPoints1,matchedPoints2,... cameraParams); %% % Display the inlier matches. inlierPoints1 = matchedPoints1(inliers); inlierPoints2 = matchedPoints2(inliers); figure showMatchedFeatures(I1,I2,inlierPoints1,inlierPoints2); title('Inlier Matches')