... | @@ -11,13 +11,13 @@ We are looking for the Camera Matrix **K** and Distortion Coefficients **D** des |
... | @@ -11,13 +11,13 @@ We are looking for the Camera Matrix **K** and Distortion Coefficients **D** des |
|
where  are camera focal lengths,  are optical centers, *p* and *k* are distortion coefficients.
|
|
where  are camera focal lengths,  are optical centers, *p* and *k* are distortion coefficients.
|
|
|
|
|
|
### Calibration object
|
|
### Calibration object
|
|
As the calibration object we chose classic black-white chessboard pattern with 8 rows, 7 columns and square's size approximately 35x35mm (Exact dimensions are specified in source code).
|
|
We chose classic black-white chessboard pattern with 8 rows, 7 columns and square's size approximately 35x35mm (Exact dimensions are specified in source code) as a calibration object.
|
|
|
|
|
|
### Calibration pictures
|
|
### Calibration pictures
|
|
We must take pictures with calibration object in the camera's Field of View in many different positions and cover entire picture with as many points as we can. Moreover, we must respect that the whole chessboard must be visible.
|
|
We must take pictures with calibration object in the camera's Field of View in many different positions and cover entire picture with as many points as we can. Moreover, we must respect that the whole chessboard must be visible.
|
|
|
|
|
|
### Finding chessboards
|
|
### Finding chessboards
|
|
We use OpenCV function `findChessboarCorners(gray,(rows,column),params=None)->ret,corners` for finding the chessboard in pictures, where `corners` are chessboard's internal corners in pixel (u,v) coordinates. After the chessboard is found the position is made more precise and the corners are found with sub-pixel precision `cornerSubPixel(gray,corners,winSize,zeroZone,criteria)->None`. You can read more about this on the page listed above.
|
|
We use OpenCV function `findChessboarCorners(gray,(rows,column),params=None)->ret,corners` for finding the chessboard in pictures, where `corners` are chessboard's internal corners in pixel (u,v) coordinates. After the chessboard is found, the position of corners is made more precise via OpenCV `cornerSubPixel(gray,corners,winSize,zeroZone,criteria)->None`, which finds them with sub-pixel precision. You can read more about this on the page listed above.
|
|
|
|
|
|
### Camera Matrix and Distortion Coefficients
|
|
### Camera Matrix and Distortion Coefficients
|
|
When we know the position of chessboards in pictures (imagePoints) and correct size of squares and its positions (objectPoints), we can now estimate the Camera Matrix and Distortion Coefficients with OpenCV function `calibrateCamera(objectPoints,imagePoints,imageShape,None,None)->ret,cam_mtx,dist,rvect,tvect`, where `cam_mtx` is the wanted Camera Matrix and `dist` are Distortion coefficients.
|
|
When we know the position of chessboards in pictures (imagePoints) and correct size of squares and its positions (objectPoints), we can now estimate the Camera Matrix and Distortion Coefficients with OpenCV function `calibrateCamera(objectPoints,imagePoints,imageShape,None,None)->ret,cam_mtx,dist,rvect,tvect`, where `cam_mtx` is the wanted Camera Matrix and `dist` are Distortion coefficients.
|
... | | ... | |