Closed TomasRiker closed 8 years ago
./example_aruco_create_board_charuco --bb=1 -d=15 -h=30 --ml=7 --si=false --sl=11 -w=30 -m=0 charuco.bmp
Generates a marker showing this. Note the uneven spacing around the bottom right of the image. Issue can be seen in higher resolutions also.
I think the problem is that marker pixel lenght (--ml
parameter) is not appropiate for the selected dictionary (-d
parameter).
The dictionary (-d 15
) is DICT_7X7_1000
, which means the internal binary pattern will be composed by 7x7 bits. Also, you are choosing a marker border width of one bit (-bb 1
).
So you need at least a marker lenght of 9x9 pixels to represent the markers correctly (--ml 9
).
Probably some workaround or automatic detection of this situation should be added to the library.
@sergarrido Thanks for spotting, unfortunately getting the same problem after correcting --ml and --sl
./example_aruco_create_board_charuco --bb=1 -d=15 -h=32 --ml=9 --si=false --sl=15 -w=32 -m=0 out_7.bmp
gives
I see. I thought the problem was only in the inner patterns of the markers. I didnt notice the markers' displacement wrt the chess squares.
Yes, it seems to be a bug. Probably related to incorrect float truncation.
The Charuco board code uses several image scaling and warping steps to create the final board image. Along the way, pixel precision gets lost. Creating a Charuco board with just as many pixels as are needed to place all markers will show that some markers are one row/column too small. Also with really large image sizes, the differences between the markers' square sizes are noticeable.