Why is the pointsToWorld back-projection inverted?
2 次查看(过去 30 天)
显示 更早的评论
Hi I have a question regarding the use of estimateWorldCameraPose and pointsToWorld of the Computer Vision Toolbox.
When I estimate the orientation and the location of the camera relative to the planar scene of points using estimateWorldCameraPose,
and then, using the camera orientation and postion thus obtained, I back-project the points to world coordinates (sans depth) using pointsToWorld,
why are the back-projected points inverted relative to the original world points?
The below code illustrates the question:
% Create a matrix of planar world points
[wx,wy]=meshgrid(0:20:100,0:40:200);
worldPoints=[wx(:) wy(:) zeros(size(wy(:)))];
% Remove one (so we can recognize the orientation later)
worldPoints(2,:)=[];
% Create a set of image points. For this example they are the same as the world
% points (but 2D)
imagePoints=worldPoints(:,[1 2]);
% Create arbitraty camera intrinsics
focalLength = [800, 800];
principalPoint = [320, 240];
imageSize = [480, 640];
intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);
% Estimate the orientation and the location of the camera relative to the planar
% scene of points
[worldOri,worldLoc] = estimateWorldCameraPose(worldPoints(:,[1 2]),worldPoints,intrinsics);
% Using the estimates, back project the points to world coordinates (sans depth)
backProjectPoints = pointsToWorld(intrinsics,worldOri,worldLoc,imagePoints);
% Plot the worldPoints and the back projection
figure
scatter(worldPoints(:,1),worldPoints(:,2))
hold on
scatter(backProjectPoints(:,1),backProjectPoints(:,2))
title('Why inverted?');
0 个评论
采纳的回答
Qu Cao
2020-8-16
You may need to convert the camera world pose to extrinsics using cameraPoseToExtrinsics:
[worldOri,worldLoc] = estimateWorldCameraPose(worldPoints(:,[1 2]),worldPoints,intrinsics);
[rotationMatrix,translationVector] = cameraPoseToExtrinsics(worldOri,worldLoc);
backProjectPoints = pointsToWorld(intrinsics,rotationMatrix,translationVector,imagePoints);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Computer Vision Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!