title: How to estimate intrinsic properties of a camera from data?
body: <p>I am attempting camera calibration from a single RGB image (panorama) given 3D pointcloud</p>
  <p>The methods that I have considered all require an intrinsic properties matrix (which I have no access to)<a href="https://i.stack.imgur.com/AGwu9.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AGwu9.jpg" alt="enter image description here" /></a></p>
  <p>The intrinsic properties matrix can be estimated using the <a href="http://www.vision.caltech.edu/bouguetj/calib_doc/" rel="nofollow noreferrer">Bouguet’s camera calibration Toolbox</a>, but as I have said, I have a single image only and a single point cloud for that image.</p>
  <p>So, knowing 2D image coordinates, extrinsic properties, and 3D world coordinates, how can the intrinsic properties be estimated?</p>
  <p>It would seem that the <code>initCameraMatrix2D</code> function from the OpenCV (<a href="https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html" rel="nofollow noreferrer">https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html</a>) works in the same way as the Bouguet’s camera calibration Toolbox and requires multiple images of the same object</p>
  <p>I am looking into the <a href="https://en.wikipedia.org/wiki/Direct_linear_transformation" rel="nofollow noreferrer">Direct linear transformation DLT</a> and <a href="https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm" rel="nofollow noreferrer">Levenberg–Marquardt algorithm</a> with implementations <a href="https://drive.google.com/file/d/1gDW9zRmd0jF_7tHPqM0RgChBWz-dwPe1" rel="nofollow noreferrer">https://drive.google.com/file/d/1gDW9zRmd0jF_7tHPqM0RgChBWz-dwPe1</a>
  but it would seem that both use the pinhole camera model and therefore find linear transformation between 3D and 2D points</p>