def _my_cal(self, image): find_H = fp() find_H.set_cv_img(image) find_H.start() kp, des = find_H.get_point() self.H = self.match_images(self.mark_kp, self.mark_des, kp, des) if self.H is not None: cam1 = camera.Camera(hstack((self.K, dot(self.K, array([[0], [0], [-1]]))))) # Rt1=dot(linalg.inv(self.K),cam1.P) cam2 = camera.Camera(dot(self.H, cam1.P)) A = dot(linalg.inv(self.K), cam2.P[:, :3]) A = array([A[:, 0], A[:, 1], cross(A[:, 0], A[:, 1])]).T cam2.P[:, :3] = dot(self.K, A) Rt = dot(linalg.inv(self.K), cam2.P) return Rt else: return None
def __init__(self): # initialise webcam and start thread self.webcam = Webcam() self.webcam.start() self.find = fp() self.find.set_img('sample.jpg') self.hei, self.wid = self.webcam.get_frame_shape()[:2] # initialise cube # self.d_obj = None self.img = None # initialise texture self.texture_background = None self.K = None self.mark_kp = None self.mark_des = None self.set_keypoint() self.new_kp = None self.mat_kp = None self.mat_des = None self.H = None