Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it:
pt = [[0,0,0]] # maybe you want some x or y offset, so it does not interfere with drawAxis() !
imgpts = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0], sometext, ...)

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it:
pt = [[0,0,0]] # maybe you want some x or y offset, so it does not interfere interfer with drawAxis() !
imgpts pt = [[0,0,0]] 
imgpts, _ = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0], imgpts[0][0][0], sometext, ...)

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it:
# maybe you want some x or y offset, so it does not interfer with drawAxis() !
pt = [[0,0,0]] 
imgpts, _ = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0][0][0], imgpts[0][0], sometext, ...)

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it:
# maybe you want some x or y offset, so it does not interfer interfere with drawAxis() !
pt = [[0,0,0]] 
imgpts, _ = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0][0], sometext, ...)

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it:
it (relative to the tvec position):
# maybe you want some x or y offset, so it does not interfere with drawAxis() !
pt = [[0,0,0]] 
imgpts, _ = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0][0], sometext, ...)

it gets slightly advanced here, but to find the 2d position of your marker on the screen, you have to project it from the 3d space of the rvec / tvec back to 2d, in the very same way, drawAxis() does it.

untested (i don't have any aruco markers), but something like this:

# a list with a single point in it (relative to the tvec position):
# maybe you want some x or y offset, so it does not interfere with drawAxis() !
pt = [[0,0,0]] 
np.array([[-12, -12, 0]], dtype=np.float)
imgpts, _ = cv2.projectPoints(pt, self.rvecs[i], self.tvecs[i], camera_matrix, dist_coeffs)
cv2.putText(cv_image, imgpts[0][0], sometext, ...)