예제 #1
0
def check_regions_and_pairs():
    """
    Make sure the tracking regions and camera pairs are well defined.
    """
    regions_dict = file_tools.read_tracking_2d_regions()
    camera_pairs_dict = file_tools.read_tracking_2d_camera_pairs()
    region_tools.check_regions_and_camera_pairs(regions_dict, camera_pairs_dict)
예제 #2
0
def get_camera_pairs_dict():
    camera_pairs = file_tools.read_tracking_2d_camera_pairs()
    camera_pairs_dict = {}
    for region, pairs_list in camera_pairs.iteritems():
        pair_name_list = []
        for pair in pairs_list:
            pair_name = '{0}_{1}'.format(pair[0], pair[1])
            pair_name_list.append(pair_name)
        if pair_name_list:
            camera_pairs_dict[region] = pair_name_list
    return camera_pairs_dict
예제 #3
0
    def __init__(self):
        self.regions_dict = file_tools.read_tracking_2d_regions()
        self.camera_pairs_dict = file_tools.read_tracking_2d_camera_pairs()

        # Create dictionaries describing tranformation setup
        self._create_camera_to_region_dict()
        self._create_tracking_plane_to_region_dict()
        self._create_region_to_anchor_plane_dict()
        self._create_tracking_to_anchor_plane_dict()
        self._create_camera_to_image_size_dict()
        self._get_stitching_params()

        # Create transformation dictionaries
        self._create_tracking_plane_to_transform_dict()
        self._create_camera_to_transform_dict()
예제 #4
0
def transform_2d_calibrator_nodes_ready():
    """
    Returns True if the transform 2d calibrator nodes are ready. They are ready 
    if the number of transform 2d calibrator nodes are eqaul to the number of
    camera pairs.
    """
    # Get list of currently running transform 2d calibrators
    calibrator_list = get_transform_2d_calibrator_nodes()

    # Get list of all camera pairs
    camera_pairs_dict = file_tools.read_tracking_2d_camera_pairs()
    all_pairs_list = []
    for pairs_list in camera_pairs_dict.values():
        all_pairs_list.extend(pairs_list)

    if len(all_pairs_list) == len(calibrator_list):
        return True
    else:
        return False
예제 #5
0
def setup_redis_db():
    # Create db and add empty camera assignment
    db = redis.Redis('localhost',db=config.redis_db)

    # Add mjpeg information
    mjpeg_info_dict = mjpeg_servers.get_mjpeg_info_dict()
    redis_tools.set_dict(db,'mjpeg_info_dict', mjpeg_info_dict)

    # Add camera pairs information
    camera_pairs_dict = file_tools.read_tracking_2d_camera_pairs()
    redis_tools.set_dict(db,'camera_pairs_dict', camera_pairs_dict)

    # Add external network interface
    machine_def = mct_introspection.get_machine_def()
    ip_iface_ext = iface_tools.get_ip_addr(machine_def['mct_master']['iface-ext'])
    redis_tools.set_str(db,'ip_iface_ext',ip_iface_ext)

    # Add default scale for image view
    scale_default = config.camera_view_table['scale_default']
    redis_tools.set_str(db,'scale', scale_default)

    return db
예제 #6
0
        print(t1)
        print(t2)
        print()
        print(m1)
        print()
        print(m2)
        print()
        print(m22)
        print()
        print(m3)
        print()
        print(m33)
        print()

    if 0:
        camera_pairs_dict = file_tools.read_tracking_2d_camera_pairs()
        camera_pairs_list = camera_pairs_dict['maze']
        tf_digraph = create_transform_digraph(camera_pairs_list)
        print('nodes:')
        print(tf_digraph.nodes())
        print()
        print('edges:')
        print(tf_digraph.edges())
        print()
        m1 = get_transform_matrix(tf_digraph, 'tracking_plane_1',
                                  'tracking_plane_1')
        m2 = get_transform_matrix(tf_digraph, 'tracking_plane_1',
                                  'tracking_plane_1')
        m1_m2 = numpy.dot(m1, m2)
        print(m1)
        print(m2)