示例#1
0
def answer_question(frame_list):
    mask = cv.imread(utils.get_pwd() + '/our_data/masked_frames/0.jpg')
    mask = np.transpose(mask, (1, 0, 2))

    # ref_feature_points, ref_features_img = q2.harris_and_nms(frame_list[0], nms_window=10)
    # ref_feature_points, _ = filter_points_not_in_mask(ref_feature_points, mask)

    orig_ref_points = list()
    has_orig = False

    ref_frame_points_lists = list()
    seq_frame_points_lists = list()
    for i in range(1, len(frame_list)):
        ref_points, matched_points = perform_q6(frame_list[0], frame_list[i], mask,
                                                ssd_win=20,
                                                search_win=35,
                                                nms_window=35)

        if has_orig is False:
            orig_ref_points = ref_points
            orig_ref_points, _ = filter_points_not_in_mask(orig_ref_points, mask)
            has_orig = True

        ref_frame_points_lists.append(ref_points)
        seq_frame_points_lists.append(matched_points)
        orig_ref_points = _filter_points_not_in_points(orig_ref_points, ref_points)

    final_seq_points_lists = list()
    final_seq_points_lists.append(orig_ref_points)
    for i in range(len(ref_frame_points_lists)):
        seq_points_list = list()
        for ref_point in orig_ref_points:
            index = ref_frame_points_lists[i].index(ref_point)
            seq_points_list.append((seq_frame_points_lists[i])[index])

        final_seq_points_lists.append(seq_points_list)

    marked_frame_list = list()
    i = 0
    for point_list in final_seq_points_lists:
        f = frame_list[i].copy()

        marked_frame = q3.mark_points(f, point_list[0:10])
        marked_frame_list.append(marked_frame)
        i += 1

    marked_frame_list = utils.rotate_frames(marked_frame_list)

    # Flip horizontal
    new_frame_list = list()
    for image in marked_frame_list:
        image = np.flip(image, 1)
        new_frame_list.append(image)

    final = utils.hstack_frames(new_frame_list, reverse=False)

    cv.imwrite(utils.get_pwd() + "/q6" + ".jpg", final)
示例#2
0
文件: q9.py 项目: BerIgor/vision
def stabilize_frames(frame_list, frames_transformations_list, save_frames=False):
    # Initialize
    stabilized_frames = list()
    num_of_frames = len(frame_list)

    # Clean output directories
    pwd = utils.get_pwd()
    images_dir_path = pwd + '/our_data/q9_frames/'
    stab_images_dir_path = pwd + '/our_data/q9_frames_stab/'
    if save_frames:
        clean_output_directories(images_dir_path, stab_images_dir_path)

    # Transform frames
    for i in range(num_of_frames):
        a, b = frames_transformations_list[i]
        # print("Transformation matrices for frame " + str(i))
        # print(a)
        # print(b)
        frame = frame_list[i]
        stabilized_frame = q5.stabilize_image(frame, a, b)
        stabilized_frames.append(stabilized_frame)
        # Save frames to output folders
        if save_frames:
            utils.video_save_frame(frame, pwd, 'q9_frames', i)
            utils.video_save_frame(stabilized_frame, pwd, 'q9_frames_stab', i)
        print("Stabilized frame " + str(i))

    return stabilized_frames
示例#3
0
def perform(frames, search_window, ssd_window, nms_window):
    mask = cv.imread(utils.get_pwd() + '/our_data/masked_frames/0.jpg')
    mask = np.transpose(mask, (1, 0, 2))

    transformations = list()
    i = 0
    for frame in frames:
        print("frame " + str(i))
        ref_points, seq_points = q6.perform_q6(frames[0],
                                               frame,
                                               mask,
                                               search_win=search_window,
                                               ssd_win=ssd_window,
                                               nms_window=nms_window)

        if len(ref_points) < 3:
            ref_points, seq_points = q6.perform_q6(frames[0],
                                                   frame,
                                                   mask,
                                                   search_win=2 *
                                                   search_window,
                                                   ssd_win=ssd_window,
                                                   nms_window=nms_window)
        transformations.append(q7.calc_transform_ransac(
            ref_points, seq_points))
        i += 1

    stabilized_images = q5.stabilize_frames(frames, transformations)
    return stabilized_images
示例#4
0
文件: q2.py 项目: BerIgor/vision
def perform(frame_list):
    frames_with_features = list()
    indices = [0, 3, 5]
    frame_list = [frame_list[x] for x in indices]
    for frame in frame_list:
        features, frame_after_harris = harris_and_nms(frame, nms_window=35)
        frames_with_features.append(frame_after_harris)

    rframes = utils.rotate_frames(frames_with_features)
    stacked_frames = utils.hstack_frames(rframes, reverse=True)

    cv.imwrite(utils.get_pwd() + "/q2" + ".jpg", stacked_frames)
示例#5
0
def perform(frames):
    iml = list()
    frames_points = utils.get_frames_points()

    for i in range(len(frames)):
        frame = frames[i]
        points = frames_points[i]
        marked_frame = mark_points(frame, points)
        iml.append(marked_frame)

    iml = utils.rotate_frames(iml)
    iml = utils.hstack_frames(iml, reverse=True)
    cv.imwrite(utils.get_pwd() + "/q3" + ".jpg", iml)
示例#6
0
文件: q5.py 项目: BerIgor/vision
def perform(frames, transformations):
    stabilized_images = list()
    for i in range(len(frames)):
        frame = frames[i]
        a, b = transformations[i]
        stabilized_image = stabilize_image_cv(frame, a, b)
        stabilized_images.append(stabilized_image)

    stabilized_images = utils.rotate_frames(stabilized_images)
    new_stab_list = list()
    for image in stabilized_images:
        image = np.flip(image, 1)
        new_stab_list.append(image)
    stabilized_images = utils.hstack_frames(new_stab_list, reverse=False)

    cv2.imwrite(utils.get_pwd() + "/q5" + ".jpg", stabilized_images)