// Initialize the camera object VideoCapture camera = new VideoCapture(); // Capture multiple images of a chessboard of size 6x9 ListThe examples above use the EmguCV library which is a cross-platform wrapper for OpenCV written in C#.> images = new List >(); for (int i = 0; i < numImages; i++) { Image img = camera.QueryFrame().ToImage (); images.Add(img); } // Specify the dimensions of the chessboard squares in millimeters MCvPoint3D32f[][] corners = new MCvPoint3D32f[1][]; corners[0] = new MCvPoint3D32f[54]; int index = 0; for (int i = 0; i < 6; i++) { for (int j = 0; j < 9; j++) { corners[0][index] = new MCvPoint3D32f(j * squareSize, i * squareSize, 0); index++; } } // Call the CalibrateCamera function to get the intrinsic parameters of the camera Mat[] rvecs, tvecs; Matrix cameraMatrix = new Matrix (3, 3); Matrix distCoeffs = new Matrix (1, 5); CvInvoke.CalibrateCamera(corners, cornersFound, imageSize, cameraMatrix, distCoeffs, CalibType.Default, new MCvTermCriteria(30, 0.1), out rvecs, out tvecs);