Ask Your Question

Revision history [back]

How do I get a More Accurate drawAxis?

I am working with ARUCO targets, trying to get an accurate axis drawn on my marker or ARUCO board. Originally I was working with a single marker but then I was told an ARUCO board helps processes such as accurate axis drawings.

I have calibrated my camera and gotten a re-projection error of .6 at the end of it (so I assume all went well). However, when I draw my axis, I get something like the picture below. image description

So this isn't an awful axis drawing, but I've seen some much clearer ones on youtube and on the tutorial page they link a particularly nice video. Especially with an ARUCO board, I'd expect a near perfect axis drawing on clear pictures but thats not what I'm receiving.

Below is also my code.

corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, dictionary, parameters=parameters)
    if ids is not None:
        frame = aruco.drawDetectedMarkers(frame, corners, ids)
        l,rvec,tvec = aruco.estimatePoseBoard(corners,ids,board,camera_matrix,dist_coeff)
        frame = aruco.drawAxis(frame,camera_matrix,dist_coeff,rvec,tvec,.1)

How do I get a More Accurate drawAxis?

I am working with ARUCO targets, trying to get an accurate axis drawn on my marker or ARUCO board. Originally I was working with a single marker but then I was told an ARUCO board helps processes such as accurate axis drawings.

I have calibrated my camera and gotten a re-projection error of .6 at the end of it (so I assume all went well). However, when I draw my axis, I get something like the picture below. image description

So this isn't an awful axis drawing, but I've seen some much clearer ones on youtube and on the tutorial page they link a particularly nice video. Especially with an ARUCO board, I'd expect a near perfect axis drawing on clear pictures but thats not what I'm receiving.receiving. I'd appreciate any advice on how to obtain a nicer axis drawing (and therefore more accurate coordinate system to work with).

Below is also my code.

corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, dictionary, parameters=parameters)
    if ids is not None:
        frame = aruco.drawDetectedMarkers(frame, corners, ids)
        l,rvec,tvec = aruco.estimatePoseBoard(corners,ids,board,camera_matrix,dist_coeff)
        frame = aruco.drawAxis(frame,camera_matrix,dist_coeff,rvec,tvec,.1)