def helper_for_part_6(video_name1, video_name2, fps, frame_ids, output_prefix, counter_init, is_part6): video1 = os.path.join(VID_DIR, video_name1) video2 = os.path.join(VID_DIR, video_name2) image_gen1 = ps3.video_frame_generator(video1) image_gen2 = ps3.video_frame_generator(video2) image1 = image_gen1.next() h1, w1, d1 = image1.shape image2 = image_gen2.next() h2, w2, d2 = image2.shape #corners = get_corners_list(image2) out_path = "output/ar_{}-{}".format(output_prefix[4:], video_name1) video_out = mp4_video_writer(out_path, (w1, h1), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) #if is_part6: # advert = image2 # src_points = ps3.get_corners_list(advert) # image2 = image_gen2.next() output_counter = counter_init frame_num = 1 while image1 is not None: print "Processing fame {}".format(frame_num) advert = image2 src_points = ps3.get_corners_list(advert) image2 = image_gen2.next() markers = ps3.find_markers(image1, template) homography = ps3.find_four_point_transform(src_points, markers) image1 = ps3.project_imageA_onto_imageB(advert, image1, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image1) output_counter += 1 video_out.write(image1) image1 = image_gen1.next() frame_num += 1 video_out.release()
def part_6(): print "\nPart 6:" video_file = "ps3-4-a.mp4" my_video = "my-ad.mp4" # Place your video in the input_video directory frame_ids = [355, 555, 725] fps = 40 output_counter = 1 video = os.path.join(VID_DIR, video_file) image_gen = ps3.video_frame_generator(video) image = image_gen.next() h, w, d = image.shape out_path = "output/ar_6.mp4" video_out = mp4_video_writer(out_path, (w, h), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) advert_video = os.path.join(VID_DIR, my_video) ad_img_gen = ps3.video_frame_generator(advert_video) advert = ad_img_gen.next() src_points = ps3.get_corners_list(advert) frame_num = 1 while image is not None: print "Processing fame {}".format(frame_num) markers = ps3.find_markers(image, template) homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(advert, image, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = "ps3-6-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.next() advert = ad_img_gen.next() frame_num += 1 video_out.release() while advert is not None: advert = ad_img_gen.next()
def helper_for_part_6(video_name, fps, frame_ids, output_prefix, counter_init, ad_video_name): video = os.path.join(VID_DIR, video_name) image_gen = ps3.video_frame_generator(video) image = image_gen.__next__() h, w, d = image.shape out_path = "output/ar_{}-{}".format(output_prefix[4:], video_name) video_out = mp4_video_writer(out_path, (w, h), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) ad_video = os.path.join(VID_DIR, ad_video_name) ad_image_gen = ps3.video_frame_generator(ad_video) advert = ad_image_gen.__next__() h_ad, w_ad, d_ad = advert.shape src_points = ps3.get_corners_list(advert) output_counter = counter_init frame_num = 1 while image is not None: print("Processing fame {}".format(frame_num)) # start_time = time.time() print(frame_num) markers = ps3.find_markers(image, template) # elapsed_time = time.time() - start_time # print("FindMarkers : ", elapsed_time) homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(advert, image, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.__next__() advert = ad_image_gen.__next__() frame_num += 1 video_out.release()
def helper_for_part_6(video_name_base, video_name_top, fps, frame_ids, output_prefix, counter_init): video_base = os.path.join(VID_DIR, video_name_base) image_gen_base = ps3.video_frame_generator(video_base) video_top = os.path.join(VID_DIR, video_name_top) image_gen_top = ps3.video_frame_generator(video_top) image_base = image_gen_base.__next__() h, w, d = image_base.shape image_top = image_gen_top.__next__() out_path = "output/ar_{}-{}".format(output_prefix[4:], video_name_base) video_out = mp4_video_writer(out_path, (w, h), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) src_points = ps3.get_corners_list(image_top) output_counter = counter_init frame_num = 1 while image_base is not None: # for i in range(10): print("Processing fame {}".format(frame_num)) markers = ps3.find_markers(image_base, template) homography = ps3.find_four_point_transform(src_points, markers) image_base = ps3.project_imageA_onto_imageB(image_top, image_base, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image_base) output_counter += 1 video_out.write(image_base) # video_out.write(image_top) image_base = image_gen_base.__next__() image_top = image_gen_top.__next__() frame_num += 1 video_out.release()
def helper_for_part_6(video_name, my_video_name, fps, frame_ids, output_prefix, counter_init): my_video = os.path.join(VID_DIR, my_video_name) my_image_gen = ps3.video_frame_generator(my_video) video = os.path.join(VID_DIR, video_name) image_gen = ps3.video_frame_generator(video) image = image_gen.next() h, w, d = image.shape out_path = "output/ar_{}-{}".format(output_prefix[4:], video_name) video_out = mp4_video_writer(out_path, (w, h), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) output_counter = counter_init frame_num = 1 while image is not None: try: next_img = my_image_gen.next() except: #my_image_gen.release() my_image_gen = ps3.video_frame_generator(my_video) print('Replay!.') if next_img is not None: advert = np.copy(next_img) src_points = ps3.get_corners_list(advert) print "Processing fame {}".format(frame_num) markers = ps3.find_markers(image, template) homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(advert, image, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.next() frame_num += 1 video_out.release()
def part_6(): print "\nPart 6:" video_file = "ps3-4-a.mp4" my_video = "my-ad.mp4" # Place your video in the input_video directory frame_ids = [355, 555, 725] fps = 40 # Todo: Complete this part on your own. base_video = os.path.join(VID_DIR, video_file) image_gen = ps3.video_frame_generator(base_video) image = image_gen.next() h, w, d = image.shape my_video = os.path.join(VID_DIR, my_video) my_image_gen = ps3.video_frame_generator(my_video) my_image = my_image_gen.next() out_path = "output/ar_{}-{}.avi".format("ps3-6", video_file) video_out = mp4_video_writer(out_path, (w, h), fps) output_counter = 1 frame_num = 1 src_points = ps3.get_corners_list(my_image) while image is not None: print "Processing frame {}".format(frame_num) markers = ps3.find_markers(image, None) homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(my_image, image, homography) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = "ps3-6" + "-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.next() my_image = my_image_gen.next() frame_num += 1 video_out.release()
def helper_for_part_4_and_5(video_name, fps, frame_ids, output_prefix, counter_init, is_part5): video = os.path.join(VID_DIR, video_name) image_gen = ps3.video_frame_generator(video) image = image_gen.__next__() h, w, d = image.shape out_path = "ar_{}-{}".format(output_prefix[4:], video_name) video_out = mp4_video_writer(out_path, (w, h), fps) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) if is_part5: advert = cv2.imread(os.path.join(IMG_DIR, "img-3-a-1.png")) advert = cv2.resize(advert, (800, 450)) src_points = ps3.get_corners_list(advert) output_counter = counter_init frame_num = 1 while image is not None: # todo remove cv2.imwrite('out/frame_in/fram' + str(frame_num) + '.png', image) print("Processing fame {}".format(frame_num)) markers = ps3.find_markers(image, template, fram_num=frame_num) if is_part5: homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(advert, image, homography) else: for marker in markers: mark_location(image, marker) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.__next__() frame_num += 1 video_out.release()
def part_6(): print("\nPart 6:") video_file = "ps3-4-a.mp4" my_video = "my-ad.mp4" # Place your video in the input_video directory frame_ids = [355, 555, 725] fps = 40 # Todo: Complete this part on your own. video = os.path.join(VID_DIR, video_file) image_gen = ps3.video_frame_generator(video) embedded_video = os.path.join(VID_DIR, my_video) embedded_gen = ps3.video_frame_generator(embedded_video) image = image_gen.__next__() h, w, d = image.shape output_prefix = "ps3-6-a" out_path = "ar_{}-{}".format(output_prefix[4:], video_file) video_out = mp4_video_writer(out_path, (w, h), fps) # video_frame_to_embed = embedded_gen.__next__() # frame_num = 1 # while video_frame_to_embed is not None: # frame_num += 1 # # todo remove # video_frame_to_embed = embedded_gen.__next__() # cv2.imwrite('out/frame_in/fram' + str(frame_num) + '.png', video_frame_to_embed) # print("Processing fame {}".format(frame_num)) # Optional template image template = cv2.imread(os.path.join(IMG_DIR, "template.jpg")) first = embedded_gen.__next__() video_frame_to_embed = first is_repeat = False output_counter = 1 frame_num = 1 while image is not None: # todo remove cv2.imwrite('out/frame_in/fram' + str(frame_num) + '.png', image) print("Processing fame {}".format(frame_num)) if video_frame_to_embed is not None and not is_repeat: video_frame_to_embed = embedded_gen.__next__() if video_frame_to_embed is None: video_frame_to_embed = first is_repeat = True src_points = ps3.get_corners_list(video_frame_to_embed) markers = ps3.find_markers(image, template, fram_num=frame_num) homography = ps3.find_four_point_transform(src_points, markers) image = ps3.project_imageA_onto_imageB(video_frame_to_embed, image, homography) # for marker in markers: # mark_location(image, marker) frame_id = frame_ids[(output_counter - 1) % 3] if frame_num == frame_id: out_str = output_prefix + "-{}.png".format(output_counter) save_image(out_str, image) output_counter += 1 video_out.write(image) image = image_gen.__next__() frame_num += 1 video_out.release()