Nous vous remercions d'avance de votre attention.comment obtenir la matrice de projection de caméra en utilisant le matlab?
Récemment, je suis en train d'utiliser le programme Matlab fourni par Andrea Fusiello1, Emanuele Trucco2, Alessandro Verri3 dans le Un algorithme compact pour la rectification de paires stéréo pour corriger les images par les deux caméras dans mon projet de recherche portant sur stéréo étalonnage.
Bien que le code Matlab ne soit pas complexe, comment obtenir les matrices de projection des deux caméras me confondait encore. J'ai utilisé le code Matlab suivant pour obtenir la matrice interne et R et T de chaque caméra. Et je pense que je peux obtenir la matrice de projection en utilisant la formule: P = A1 * [R | T]. Cependant, comme vous pouvez le voir sur la photo, la conséquence est étrange.
Donc je pense qu'il y a quelque chose qui ne va pas avec les matrices de projection que j'ai. Quelqu'un pourrait-il me dire comment obtenir les matrices de projection correctement?
Code 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);
La conséquence:
Nous vous remercions de votre aide! –