Search code examples
pythoncameracamera-calibration

New Pinhole Camera Intinsics Matrix for the Cropped Image


I give the following example to illustrate my question: suppose I have a camera intrinsics matrix that follows the pin-hole camera model, and its intrinsics matrix has the following structure:

 ori_intrinsics= [[fx, 0,  cx,],
                  [0,  fy, cy],
                   [0, 0, 1]]

I also know the image it can generate of size [ori_width, ori_height]. Then now I crop the image in the image position [ori_left, ori_top, ori_right, ori_bottom]. Now I have a new image. Then my question is as follows: image now I have a similar camera(the same pin-hole camera) and it will generate the same new image without any cropping operation as I did before. What will be the camera intrinsics for this camera?


Solution

  • Cropping an image does not affect focal length, so no change to fx, fy. The only thing that will change is cx and cy, and this needs to be adjusted based on how much you have cropped from top-left.

    If you crop by L, T, then:

    • c_newx = cx - L and
    • c_newy = cy - T