Hi Tao,
There doesn't seem to be a direct way to find intrinsics using a single image. As you mentioned, the "estimateCameraParameters" function requires two images.
As an alternative, please try using the "estimateCameraProjection" function which will give you the camera projection. Please refer to the following documentation:
After that, to estimate the camera intrinsics using the camera projection model, you can use the relationship between 3D world coordinates and 2D image coordinates. This involves using the camera projection matrix, which describes how 3D points are projected onto a 2D image plane.
The general camera projection model is:
x=P⋅X
Where:
- x = [u, v, 1]^T are the homogeneous 2D image coordinates (in pixel units),
- X = [X, Y, Z, 1]^T are the homogeneous 3D world coordinates,
- P = the camera projection matrix (a 3x4 matrix that encodes both intrinsic and extrinsic parameters).
The projection matrix P can be written as:
P=K⋅[R∣t]
Where:
- K is the intrinsic matrix,
- [R∣t] is the extrinsic matrix, with R as the rotation matrix and t as the translation vector.
Hope this helps!