How to warp an image using Rotation and Translation matrix?

Hi all,

I am working in a project which I have rotation and translation matrix of the camera regarding checker-board under ground. I can easily warp the image using Homography in Opencv, however in this challenge I need to use provided rotation and translation matrix to warp the image and perspective transformation.

FYI, rotation matrix is 3x3 matrix and translation matrix is 3*1 matrix.

Please let me know if there is a way to address this?


The translation / rotation matrix are describing the object/camera pose? You might want to look into cv::perspectiveTransform and cv::warpPerspective.


Yes Steve, translation and rotation are from the object(checker board in my example)/camera pose.
I have done this project previously using getPerspectiveTransform and warpPerspective. I had series of corresponding points from marker and camera view, then I estimate the Homography matrix and use it to warp the view (create a bird eye view (BEV)).
However, now, I want to do the same but using rotation matrix and translation matrix instead of getPerspectiveTransform function. Basically, I receive the rotation and translation matrix from another team and I need to warp the image and create a BEV map.

Have a look at this tutorial:
Basic concepts of the homography explained with code

You should find some information to help you solve ypur problem.

Thanks Eduardo,
Actually I have gone through it but I could not find the answer yet. Most of the examples are about warping view according to another camera view, but in my case, it is about warping from camera view to the checker board on the ceiling in order to create a bird eye view.

Hello aRk, I think I can help you. I have done a lot of “AR” transformations in OpenCV, but I need more explanation from you.

Where is your checkerboard placed and what is your desired output image? Can you create an exmplanation of input image and desired output?

Maybe cv::projectPoints() could help you to project 3D points of checkerboard into camera image. Then using cv::getPerspectiveTransform() and cv::warpPerspective() you can get your desired output I guess.