admin管理员组

文章数量:1613385

If you are using one of the calibration images, then all the information you need is in the cameraParams object.

Let's say you are using calibration image 1, and let's call it I.First, undistort the image:

I = undistortImage(I, cameraParams);

Get the extrinsics (rotation and translation) for your image:

R = cameraParams.RotationMatrices(:,:,1);
t = cameraParams.TranslationVectors(1, :);

Then combine rotation and translation into one matrix:

R(3, :) = t;

Now compute the homography between the checkerboard and the image plane:

H = R * cameraParams.IntrinsicMatrix;

Transform the image using the inverse of the homography:

J = imwarp(I, projective2d(inv(H)));
imshow(J);

You should see a "bird's eye" view of the checkerboard. If you are not using one of the calibration images, then you can compute R and t using the extrinsics function.

Another way to do this is to use detectCheckerboardPoints and generateCheckerboardPoints, and then compute the homography using fitgeotform.

本文标签: VisioncomputerCalculateMatrixfundamental