def get_object_pose(self, marker, tag):
# AR Tag Dimensions
objPoints = np.zeros((4, 3), dtype=np.float64)
objPoints[0,0] = -1.0*tag[1]/2.0
objPoints[0,1] = tag[1]/2.0
objPoints[0,2] = 0.0
objPoints[1,0] = tag[1]/2.0
objPoints[1,1] = tag[1]/2.0
objPoints[1,2] = 0.0
objPoints[2,0] = tag[1]/2.0
objPoints[2,1] = -1*tag[1]/2.0
objPoints[2,2] = 0.0
objPoints[3,0] = -1*tag[1]/2.0
objPoints[3,1] = -1*tag[1]/2.0
objPoints[3,2] = 0.0
# Get each corner of the tags
imgPoints = np.zeros((4, 2), dtype=np.float64)
for i in range(4):
imgPoints[i, :] = marker.contours[i, 0, :]
camPos = np.zeros((3, 1))
camRot = np.zeros((3, 1))
# SolvePnP
retVal, rvec, tvec = cv2.solvePnP(objPoints, imgPoints, self.camMatrix, self.distCoeff)
Rca, b = cv2.Rodrigues(rvec)
Pca = tvec
return [Pca, Rca]
评论列表
文章目录