【发布时间】:2016-03-14 03:25:25
【问题描述】:
首先感谢您的关注。
最近我正在尝试使用 Andrea Fusiello1、Emanuele Trucco2、Alessandro Verri3 在A compact algorithm for rectification of stereo pair中提供的 Matlab 程序来校正从我的两个摄像头获取的图片立体校准研究项目。
虽然Matlab代码并不复杂,但是如何得到两个相机的投影矩阵还是让我很困惑。 我使用以下 Matlab 代码来获取每个相机的内部矩阵和 R 和 T。而且我想我可以使用以下公式得到投影矩阵:P = A1*[R|T]。但是,正如您在图片中看到的那样,结果很奇怪。
所以我认为我得到的投影矩阵有问题。谁能告诉我如何正确获取投影矩阵?
matlab代码:
numImages = 9;
files = cell(1, numImages);
for i = 1:numImages
files{i} = fullfile(matlabroot, 'toolbox', 'vision', 'visiondata', ...
'calibration', 'left', sprintf('left%d.bmp', i));
end
[imagePoints, boardSize] = detectCheckerboardPoints(files);
squareSize = 120;
worldPoints = generateCheckerboardPoints(boardSize, squareSize);
cameraParams = estimateCameraParameters(imagePoints, worldPoints);
imOrig = imread(fullfile(matlabroot, 'toolbox', 'vision', 'visiondata', ...
'calibration', 'left', 'left9.bmp'));
[imagePoints, boardSize] = detectCheckerboardPoints(imOrig);
[R, t] = extrinsics(imagePoints, worldPoints, cameraParams);
后果:
【问题讨论】:
标签: matlab computer-vision matlab-cvst calibration