コード例 #1
0
from triangulation import Camera, Triangulation, InsufficientDataException
import numpy as np

if __name__ == "__main__":
    # Initialise cameras and enter normalized directional vector
    camera1 = Camera(np.array([250, -275, 84]))
    camera1.normalize_direction(np.array([-211.9, 225, 77, -84]))
    camera2 = Camera(np.array([250, 275, 84]))
    camera2.normalize_direction(np.array([-221.41, -223.62, -84]))
    camera3 = Camera(np.array([-250, 275, 84]))
    camera3.normalize_direction(np.array([203.077, -208.711, -84]))
    camera4 = Camera(np.array([-250, -275, 84]))
    camera4.normalize_direction(np.array([205.669, 216.506, -84]))

    triang = Triangulation([camera1, camera2, camera3, camera4])

    camera1.ball_pos = np.array([20, 60])
    camera2.ball_pos = np.array([-75, 50])
    camera3.ball_pos = np.array([48, 95])
    camera4.ball_pos = np.array([-47, 82])
    try:
        position = triang.calculate_position()
        print(position)
    except InsufficientDataException:
        print(
            "Position could not be found because of insufficient picture data")
    wait = input("Press enter to close")
コード例 #2
0
                current_cam.not_found = True
            else:
                coordinates = np.array([
                    coordinates_tuple[0] - res_x / 2,
                    (coordinates_tuple[1] - res_y / 2) * -1
                ])
                current_cam.not_found = False
                current_cam.ball_pos = coordinates

        # Break out of the loop if no more frames are provided
        if no_img:
            break

        # Calculate ball position from camera angles
        try:
            position = triangulation.calculate_position()
            ball_curve.append(position)
            position_list.append(position.tolist())
        except InsufficientDataException:
            # Fill curve with impossible position
            ball_curve.append(np.array([[0], [0], [-10]]))
            #for simulation use last good position
            if len(position_list) <= 0:
                position_list.append([0, 0, 0])
            else:
                position_list.append(position_list[-1])
        frame_counter += 1
        printProgressBar(frame_counter,
                         total_frames,
                         prefix="Progress:",
                         length=50)