Example #1
0
    def __init__(self, intrinsic, trainer, cfg, mode=Theta.NonDual):
        # variables
        self.rv = np.asarray([], dtype=np.float32)  # rotation
        self.tv = np.asarray([], dtype=np.float32)  # translation
        self.mode = mode

        # load some configs
        self.half_fov = np.radians(cfg.camera_fov) / 2
        pnp = cfg.pnp_flags

        # add SOLVEPNP_ prefix if not found
        if not pnp.startswith("SOLVEPNP_"):
            pnp = "SOLVEPNP_" + pnp

        # solvepnp flag
        if pnp in cv2.__dict__:
            self.pnp_flags = cv2.__dict__[pnp]
        else:
            print f, "is not found in cv2, reverting to Levenberg-Marquardt"
            self.pnp_flags = cv2.SOLVEPNP_ITERATIVE

        # open intrinsic, trainer files
        self.cam, self.distort = self.parseCamIntr(intrinsic)
        self.img_pts, self.obj_pts = self.parseTrainer(trainer)

        print "Camera Matrix\n", self.cam

        print "\nside:", Theta.name(mode)
        print "img_pts {}".format(len(self.img_pts))
        print "obj_pts {}".format(len(self.obj_pts))

        #calculate pose
        self.rv, self.tv = self.calPose()
        self.R = cv2.Rodrigues(self.rv)[0]
Example #2
0
 def __init__(self, intrinsic, trainer, cfg, mode=Theta.NonDual):
     # variables
     self.rv = np.asarray([], dtype=np.float32)  # rotation
     self.tv = np.asarray([], dtype=np.float32)  # translation
     self.mode = mode
     
     # load some configs
     self.half_fov = np.radians(cfg.camera_fov) / 2
     pnp = cfg.pnp_flags
     
     # add SOLVEPNP_ prefix if not found
     if not pnp.startswith("SOLVEPNP_"):
         pnp = "SOLVEPNP_" + pnp
     
     # solvepnp flag
     if pnp in cv2.__dict__:
         self.pnp_flags = cv2.__dict__[pnp]
     else:
         print f, "is not found in cv2, reverting to Levenberg-Marquardt"
         self.pnp_flags = cv2.SOLVEPNP_ITERATIVE
     
     
     # open intrinsic, trainer files
     self.cam, self.distort = self.parseCamIntr(intrinsic)
     self.img_pts, self.obj_pts = self.parseTrainer(trainer)
     
     print "Camera Matrix\n", self.cam
     
     print "\nside:", Theta.name(mode)
     print "img_pts {}".format(len(self.img_pts))
     print "obj_pts {}".format(len(self.obj_pts))
     
     #calculate pose
     self.rv, self.tv = self.calPose()
     self.R = cv2.Rodrigues(self.rv)[0]