I would like some clarification on the parameters for OpenCV's calibrateCamera function.
The function is
cv.CalibrateCamera2(objectPoints, imagePoints, pointCounts, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, flags=0)
The 'imagePoints' are the 'detected' corners in the planar calibration pattern, in my understanding. But I don't understand the role of the objectPoints in helping us recover the cameraMatrix, and the way their values are set.
Also, it is worth noting that "Currently, initialization of intrinsic parameters (when CV_CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also be used as long as initial cameraMatrix is provided." So if you are not providing camera focal length (fx, fy) and image center (cx, cy) intrinsic parameters, you have to use a planar (Z=0) calibration pattern.
First vector std::vector
Second vector cv::Vec3f
Third vector Second vector std::vector
"In the process of calibration we calculate the camera parameters by a set of know 3D points (Xw, Yw, Zw) [in world coordinates] and their corresponding pixel location (u,v) in the image."