当前位置: 首页>>代码示例>>Python>>正文


Python euler.mat2euler方法代码示例

本文整理汇总了Python中transforms3d.euler.mat2euler方法的典型用法代码示例。如果您正苦于以下问题:Python euler.mat2euler方法的具体用法?Python euler.mat2euler怎么用?Python euler.mat2euler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在transforms3d.euler的用法示例。


在下文中一共展示了euler.mat2euler方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: find_final_pose_inv

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def find_final_pose_inv(TRANSFORMATIONS_ip):
	# Arguments:
		# TRANSFORMATIONS: 			transformation matrix (batch_size x 4 x 4)
	# Output:
		# final_pose:				final pose predicted by network (batch_size x 6)

	TRANSFORMATIONS = np.copy(TRANSFORMATIONS_ip)
	final_pose = np.zeros((TRANSFORMATIONS.shape[0],6))		# Array to store the poses.
	for i in range(TRANSFORMATIONS.shape[0]):
		TRANSFORMATIONS[i] = np.linalg.inv(TRANSFORMATIONS[i])				
		rot = TRANSFORMATIONS[i,0:3,0:3]					# Extract rotation matrix.
		euler = t3d.mat2euler(rot,'szyx')					# Convert rotation matrix to euler angles. (Pre-multiplication)
		final_pose[i,3:6]=[euler[2],euler[1],euler[0]]		# Store the translation
		final_pose[i,0:3]=TRANSFORMATIONS[i,0:3,3].T 		# Store the euler angles.
	return final_pose

# Subtract the centroids from source and template (Like ICP) and then find the pose. 
开发者ID:vinits5,项目名称:pointnet-registration-framework,代码行数:19,代码来源:helper.py

示例2: inverse_pose

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def inverse_pose(pose):
	transformation_pose = np.zeros((4,4))
	transformation_pose[3,3]=1
	transformation_pose[0:3,0:3] = t3d.euler2mat(pose[5], pose[4], pose[3], 'szyx')
	transformation_pose[0,3] = pose[0]
	transformation_pose[1,3] = pose[1]
	transformation_pose[2,3] = pose[2]
	transformation_pose = np.linalg.inv(transformation_pose)
	pose_inv = np.zeros((1,6))[0]
	pose_inv[0] = transformation_pose[0,3]
	pose_inv[1] = transformation_pose[1,3]
	pose_inv[2] = transformation_pose[2,3]
	orient_inv = t3d.mat2euler(transformation_pose[0:3,0:3], 'szyx')
	pose_inv[3] = orient_inv[2]
	pose_inv[4] = orient_inv[1]
	pose_inv[5] = orient_inv[0]
	return pose_inv


###################### Shuffling Operations #########################

# Randomly shuffle given array of poses for training procedure. 
开发者ID:vinits5,项目名称:pointnet-registration-framework,代码行数:24,代码来源:helper.py

示例3: find_final_pose

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def find_final_pose(TRANSFORMATIONS):
	# Arguments:
		# TRANSFORMATIONS: 			transformation matrix (batch_size x 4 x 4)
	# Output:
		# final_pose:				final pose predicted by network (batch_size x 6)

	final_pose = np.zeros((TRANSFORMATIONS.shape[0],6))		# Array to store the poses.
	for i in range(TRANSFORMATIONS.shape[0]):				
		rot = TRANSFORMATIONS[i,0:3,0:3]					# Extract rotation matrix.
		euler = t3d.mat2euler(rot,'szyx')					# Convert rotation matrix to euler angles. (Pre-multiplication)
		final_pose[i,3:6]=[euler[2],euler[1],euler[0]]		# Store the translation
		final_pose[i,0:3]=TRANSFORMATIONS[i,0:3,3].T 		# Store the euler angles.
	return final_pose

# Convert the Final Transformation Matrix to Translation + Orientation (Euler Angles in Degrees) 
开发者ID:vinits5,项目名称:pointnet-registration-framework,代码行数:17,代码来源:helper.py

示例4: xyz_to_rotations_debug

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def xyz_to_rotations_debug(skel, position):
    all_rotations = {}
    all_rotation_matrices = {}
    children_dict = get_child_dict(skel)
    while len(children_dict.keys()) - 1 > len(all_rotation_matrices.keys()):
        for bone in children_dict.keys():
            if bone == None:
                continue
            parent = skel[bone]['parent']
            if bone in all_rotation_matrices.keys():
                continue
            if parent not in all_rotation_matrices.keys() and parent != None:
                continue
            upper = parent
            parent_rot = np.identity(3)
            while upper != None:
                upper_rot = all_rotation_matrices[upper]
                parent_rot = np.dot(upper_rot, parent_rot)
                upper = skel[upper]['parent']

            children = children_dict[bone]
            children_xyz = np.zeros([len(children), 3])
            children_orig = np.zeros([len(children), 3])
            for i in range(len(children)):
                children_xyz[i, :] = np.array(position[children[i]]) - np.array(position[bone])
                children_orig[i, :] = np.array(skel[children[i]]['offsets'])
                children_xyz[i, :] = children_xyz[i, :] * np.linalg.norm(children_orig[i, :]) / np.linalg.norm(children_xyz[i, :])
                assert np.allclose(np.linalg.norm(children_xyz[i, :]), np.linalg.norm(children_orig[i, :]))

            parent_space_children_xyz = np.dot(children_xyz, parent_rot)
            rotation = kabsch(parent_space_children_xyz, children_orig)
            if bone == 'hip':
                all_rotations[bone] = np.array(euler.mat2euler(rotation, 'sxyz')) * (180.0 / math.pi)
            else:
                angles = np.array(euler.mat2euler(rotation, 'syxz')) * (180.0 / math.pi)
                all_rotations[bone] = [
                 angles[1], angles[0], angles[2]]
            all_rotation_matrices[bone] = rotation

    return (all_rotation_matrices, all_rotations) 
开发者ID:papagina,项目名称:Auto_Conditioned_RNN_motion,代码行数:42,代码来源:rotation2xyz.py

示例5: peaks_from_best_vector_match

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def peaks_from_best_vector_match(single_match_result, library, rank=0):
    """Takes a VectorMatchingResults object and return the associated peaks,
    to be used in combination with map().

    Parameters
    ----------
    single_match_result : ndarray
        An entry in a VectorMatchingResults
    library : DiffractionLibrary
        Diffraction library containing the phases and rotations
    rank : int
        Get peaks from nth best orientation (default: 0, best vector match)

    Returns
    -------
    peaks : ndarray
        Coordinates of peaks in the matching results object in calibrated units.
    """
    best_fit = get_nth_best_solution(single_match_result, "vector", rank=rank)
    phase_index = best_fit.phase_index

    rotation_orientation = mat2euler(best_fit.rotation_matrix)
    # Don't change the original
    structure = library.structures[phase_index]
    sim = library.diffraction_generator.calculate_ed_data(
        structure,
        reciprocal_radius=library.reciprocal_radius,
        rotation=rotation_orientation,
        with_direct_beam=False,
    )

    # Cut z
    return sim.coordinates[:, :2] 
开发者ID:pyxem,项目名称:pyxem,代码行数:35,代码来源:indexation_utils.py

示例6: write_joint_rotation_matrices_to_bvh

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def write_joint_rotation_matrices_to_bvh(bvh_filename, hip_pose_seq, r_matrix_seq):

    #print (quaternion_data.shape)
    out_seq = []
    seq_len = hip_pose_seq.shape[0]
    for i in range(seq_len):
        hip_pose= hip_pose_seq[i] #3
        out_frame = [hip_pose[0], hip_pose[1], hip_pose[2]]
        hip_x, hip_y,hip_z = euler.mat2euler(r_matrix_seq[i, 0],'sxyz') #hip euler rotation
        out_frame += [hip_z* 180/ np.pi, hip_y* 180/ np.pi,hip_x* 180/ np.pi]#notice in cmu bvh files, the channel for hip rotation is z y x
        for joint in skeleton:
            if(("hip" not in joint) and  (len(skeleton[joint]["channels"])==3)):
                index=joint_index[joint]
                y,x,z=euler.mat2euler(r_matrix_seq[i, index], 'syxz')
                out_frame += [z* 180/ np.pi,x* 180/ np.pi,y* 180/ np.pi]  #notice in cmu bvh files, the channel for joint rotation is z x y
        out_seq +=[out_frame]
    
    ##out_seq now should be seq_len*(3+3*joint_num)
    out_seq =np.array(out_seq)
    out_seq=np.round(out_seq, 6)
    
    #out_seq2=np.ones(out_seq.shape)
    #out_seq2[:,3:out_seq2.shape[1]]=out_seq[:,3:out_seq2.shape[1]].copy()
    
    #print ("bvh data shape")
    #print (out_seq.shape)
    write_frames(standard_bvh_file, bvh_filename, out_seq) 
开发者ID:papagina,项目名称:RotationContinuity,代码行数:29,代码来源:read_bvh.py

示例7: blender_pose_to_blender_euler

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def blender_pose_to_blender_euler(pose):
        euler = [r / np.pi * 180 for r in mat2euler(pose, axes='szxz')]
        euler[0] = -(euler[0] + 90) % 360
        euler[1] = euler[1] - 90
        return np.array(euler) 
开发者ID:zju3dv,项目名称:pvnet-rendering,代码行数:7,代码来源:base_utils.py

示例8: rot_euler

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def rot_euler(self):
        """Returns the (rx, ry, rz) Euler rotations."""
        if self._rot_euler is not None:
            return self._rot_euler
        if self._rot_mat is not None:
            self._rot_euler = mat2euler(self.rot, axes='rxyz')
        return self._rot_euler 
开发者ID:google-research,项目名称:robel,代码行数:9,代码来源:tracker.py

示例9: calculate_relative_camera_pose

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def calculate_relative_camera_pose(full_path1, full_path2, fixated=True, raw=False):
    """
    Given two file path to two json files, extract the 'camera_location'
    and 'camera_rotation_final' field, and calcualte the relative camera pose

    Parameters:
    __________
        full_path1, full_path2: paths to json information

    Returns:
    __________
        camera_poses: vector that encode the camera pose info for two images
    """
    assert os.path.isfile(full_path1) and os.path.isfile(full_path2)
    with open(full_path1, 'r') as fp:
        data1 = json.load(fp)
    with open(full_path2, 'r') as fp:
        data2 = json.load(fp)
    key = ['camera_location', 'camera_rotation_final']
    location1 = np.asarray(data1[key[0]])
    rotation1 = data1[key[1]]
    matrix1 = euler.euler2mat(*rotation1, axes='sxyz')
    location2 = np.asarray(data2[key[0]])
    rotation2 = data2[key[1]]
    matrix2 = euler.euler2mat(*rotation2, axes='sxyz')
    relative_rotation_matrix = np.matmul(np.transpose( matrix2 ), matrix1)
    relative_rotation = euler.mat2euler(relative_rotation_matrix, axes='sxyz')
    translation = np.matmul(np.transpose(matrix2), location1 - location2)
    pose = np.hstack((relative_rotation, translation))
    if not raw:
        if fixated:
            std  = np.asarray([ 10.12015407, 8.1103528, 1.09171896, 1.21579016, 0.26040945, 10.05966329])
            mean = np.asarray([ -2.67375523e-01, -1.19147040e-02, 1.14497274e-02, 1.10903410e-03, 2.10509948e-02, -4.02013549e+00])
        else:
            mean = np.asarray([ -9.53197445e-03,  -1.05196691e-03,  -1.07545642e-02,
                        2.08785638e-02,  -9.27858049e-02,  -2.58052205e+00])
            std = np.asarray([ 1.02316223,  0.66477511,  1.03806996,  5.75692889,  1.37604962,
                        7.43157247])
        pose = (pose - mean)/std   
    return pose


########################################
# Fixated and Non-fixated Camera Pose  #
######################################## 
开发者ID:StanfordVL,项目名称:taskonomy,代码行数:47,代码来源:load_ops.py

示例10: room_layout

# 需要导入模块: from transforms3d import euler [as 别名]
# 或者: from transforms3d.euler import mat2euler [as 别名]
def room_layout( filename ):
    '''
    Room Bounding Box.
    Returns:
    --------
        bb: length 6 vector
    '''
    root, domain, model_id, point_id, view_id = parse_filename(filename)

    fname = 'point_{point_id}_view_{view_id}_domain_{domain}.json'.format(
                    point_id=point_id,
                    view_id=view_id,
                    domain='fixatedpose')
    json_file = os.path.join(root, model_id, 'points', fname)
    with open(json_file) as fp:
        data = json.load(fp)

    def homogenize( M ):
        return np.concatenate( [M, np.ones( (M.shape[0],1) )], axis=1 )

    def convert_world_to_cam( points, cam_mat=None ):
        new_points = points.T
        homogenized_points = homogenize( new_points )
        new_points = np.dot( homogenized_points, np.linalg.inv(cam_mat).T )[:,:3]
        return new_points
    
    mean = np.array([0.006072743318127848, 0.010272365569691076, -3.135909774145468, 
            1.5603802322235532, 5.6228218371102496e-05, -1.5669352793761442,
            5.622875878174759, 4.082800262277375, 2.7713941642895956])
    std = np.array([0.8669452525283652, 0.687915294956501, 2.080513632043758, 
            0.19627420479282623, 0.014680602791251812, 0.4183827359302299,
            3.991778013006544, 2.703495278378409, 1.2269185938626304])
    camera_matrix, bb = get_room_layout_cam_mat_and_ranges(data, make_x_major=True)
    camera_matrix_euler = transforms3d.euler.mat2euler(camera_matrix[:3,:3], axes='sxyz')
    vertices = np.array(list(itertools.product( *bb )))
    vertices_cam = convert_world_to_cam(vertices.T, camera_matrix)
    cube_center = np.mean(vertices_cam, axis=0)

    x_scale, y_scale, z_scale = bb[:,1] - bb[:,0] # maxes - mins
    bbox_cam = np.hstack(
        (cube_center, 
        camera_matrix_euler,
        x_scale, y_scale, z_scale))
    bbox_cam = (bbox_cam - mean) / std 
    return bbox_cam

####################
# ImageNet Softmax #
#################### 
开发者ID:StanfordVL,项目名称:taskonomy,代码行数:51,代码来源:load_ops.py


注:本文中的transforms3d.euler.mat2euler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。