close all; clear all; clc; load ('6mm_matlab.mat') % 相机标定基本参数 M = cameraParams.IntrinsicMatrix'; R = cameraParams.RotationMatrices(:,:,1); T = cameraParams.TranslationVectors(1,:)'; UV = cameraParams.ReprojectedPoints(:,:,1); % 将标定板角点像素坐标转换成齐次 for i = 1:size(UV,1) UV_H(i,:) = [UV(i,:),1]; end % 将像素坐标系转换到像素坐标系:参考https://blog.csdn.net/qq_43222384/article/details/101516807 leftMatrix = inv(R)*inv(M)*UV_H'; rightMatrix = inv(R)*T; rightMatrix_H = repmat(rightMatrix(3),[1,size(UV,1)]); temp_s = rightMatrix_H./leftMatrix(3,:);%leftMatrix和rightMatrix_H表示相机内参矩阵和外参矩阵, %UV是像素坐标系下的二维点,CB_World是相机坐标系下的三维点。 N_rightMatrix = repmat(rightMatrix,1,size(UV,1)); CB_World = temp_s.*leftMatrix - N_rightMatrix; WorldPoint = cameraParams.WorldPoints';
时间: 2023-12-06 16:40:05 浏览: 42
MATLAB模式识别实现指标分类评估预测如环境业绩等-Use_For_Predict.m
这段代码是用于相机标定的,包含了相机的内参矩阵M、旋转矩阵R、平移向量T和重投影点UV。代码的主要功能是将标定板角点的像素坐标转换为相机坐标系下的三维点坐标CB_World,并将其保存在变量WorldPoint中。具体实现方式是通过将像素坐标系下的二维点转换为齐次坐标形式,然后通过相机的内参矩阵和外参矩阵计算出相机坐标系下的三维点坐标。
阅读全文