1

숫자 나는이 페이지 (http://www.mathworks.cn/cn/help/vision/ug/stereo-image-rectification.html를) 다음과 기본 매트릭스를 계산하기 위해 estimateFundamentalMatrix 기능을 사용하지만, 나는 그 말을 오류 메시지 형태 MATLAB 명령 창을받은 :오류 :

Error using estimateFundamentalMatrix 
Expected matched_points1 to be one of these types: 

numeric 

내 코드 :

img1 = rgb2gray(imread('37_1.jpg')); 
img2 = rgb2gray(imread('38_1.jpg')); 

img1=im2double(img1); 
img2=im2double(img2); 

points1 = detectSURFFeatures(img1,'MetricThreshold', 2000); 
points2 = detectSURFFeatures(img2,'MetricThreshold', 2000); 

[featurePoint1, validPoint1] = extractFeatures(img1, points1); 
[featurePoint2, validPoint2] = extractFeatures(img2, points2); 

indexPairs = matchFeatures(featurePoint1, featurePoint2, 'Metric', 'SAD', 'MatchThreshold', 5); 
matchedPoints1 = validPoint1(indexPairs(:, 1),:); 
matchedPoints2 = validPoint2(indexPairs(:, 2),:); 

[fMatrix, epipolarInliers, status] = estimateFundamentalMatrix(matchedPoints1, ... 
matchedPoints2, 'Method', 'RANSAC', 'NumTrials', 10000, 'DistanceThreshold', ... 
0.1, 'Confidence', 99.99); 

내 프로그래밍 환경은 Win7에 플러스 MATLAB R2012b입니다.

답변

1

위에서 언급 한 오류 메시지가 나타나는 이유는 페이지가 R2014a이지만 내 MATLAB은 R2012b이므로 버전 문제입니다. 다음과 같이 코드를 변경하면됩니다.

[fMatrix, epipolarInliers, status] = estimateFundamentalMatrix(matchedPoints1.Location, ... 
matchedPoints2.Location, 'Method', 'RANSAC', 'NumTrials', 10000, 'DistanceThreshold', ... 
0.1, 'Confidence', 99.99);