I tried very hard to read the following paper.
Z. Zhang. Flexible Camera Calibration By Viewing a Plane From Unknown Orientations. International Conference on Computer Vision (ICCV'99), Corfu, Greece, pages 666-673, September 1999.
This paper proposed a way to firstly estimate homography matrix between a chessboard in image coordinate and in world coordinate. Then the intrinsic and extrinsic parameters could be obtained according to the equations inside.
However, I just found something very strange which is the position of "principal points", u0 & v0. Theoretically, they should lie within the image.
In this figure, if i defined the chessboard by the image(black) coordinate whose unit is pixels and world(blue) coordinate whose unit is mm. The principal points are nearly located at the center of this image, which is reasonable! However, if I defined the chessboard in another image coordinate, the red one, the principal point will be lied outside the image and I don't know how to interpret such result. Theoretically, to define the chessboard by different coordinates are identical.
The homography for describing the relation of this chessboard between two coordinates are absolutely correct in my matlab code.
The question is why I couldn't achieve the same result in different image coordinate. For example, if I use black image coordinate, the principal point should be in the center of the image. If I use the red image coordinate, the principal point should be also in the center of the image.
I know describing the chessboard on different coordinates will result in different homography matrices but this should account for the same "principal point" defined in different/corresponding coordinates(black or red).
If someone is proficient in this field, please help me. I could even upload my matlab code for you to understand what i mean and to help people who might be confused like me in the future!
Alex
PS, in order to estimate the intrinsic matrix, at least two images are necessary according to the paper!