# Calibration at the edges of the image

Hi, everybody, I'm working on calibrating a camera, testing a charuco-type calibrator for the first time.

I had many expectations about this calibrator, thinking with it I could get much closer to the edges of the image than with a standard chessboard, since charuco does not need to be seen entirely.

The results I get leave me a little puzzled though. The interpolateCharucoCorners function, never returns me the last line/column of the chessboard, making it impossible to use those areas of the image for calibration.

Just to give you an idea I enclose the following image, where I highlighted the area described by the points extracted by interpolateCharucoCorners (the area is the convex hull of the whole set of points).

As you can see the last column to the right of markers has not been extracted. Can you help me explain why? How do I include those pixels in the calibration?

That's my code, but it's the same as in the example

image_grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
corners, ids, rejected_points = cv2.aruco.detectMarkers(image_grayscale, board.dictionary)
_, charuco_corners, charuco_ids = cv2.aruco.interpolateCornersCharuco(corners, ids, image_grayscale, board)

edit retag close merge delete

Sort by » oldest newest most voted

The chessboard calibration only uses the internal corners for calibration purposes. So the outermost corners are never used.

Citation from the docs: "For example, a regular chessboard has 8 x 8 squares and 7 x 7 internal corners, that is, points where the black squares touch each other."

more

Official site

GitHub

Wiki

Documentation