summaryrefslogtreecommitdiff
path: root/merge_frames.py
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-01-16 02:26:30 +0100
committerJules Laplace <julescarbon@gmail.com>2019-01-16 02:26:30 +0100
commitb3d86eff5070b7557c72cd1052f00b3bc7684d77 (patch)
treea53bec63229be325cbe4e5e6a85d87d86482e54f /merge_frames.py
parenta8e994a32e481f667424fc55bffa16f8cd1e2b04 (diff)
merge
Diffstat (limited to 'merge_frames.py')
-rw-r--r--merge_frames.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/merge_frames.py b/merge_frames.py
index 32e0341..7dd7f25 100644
--- a/merge_frames.py
+++ b/merge_frames.py
@@ -14,13 +14,14 @@ parser.add_argument('--scale', default=4, type=int)
parser.add_argument('--in_dir', help='Directory to process')
parser.add_argument('--render_dir', help='Directory to output render to')
parser.add_argument('--mov', action='store_true', help='whether to create an mp4')
+parser.add_argument('--out_fn', help='mp4 basename')
args = parser.parse_args()
def split_crop_dir(fn):
crop, x, y, w, h = os.path.basename(fn).split("_")
return int(x), int(y), int(w), int(h)
-def make_movie(merge_dir, dataset):
+def make_movie(merge_dir, out_fn):
subprocess.call([
'ffmpeg',
'-hide_banner',
@@ -31,7 +32,7 @@ def make_movie(merge_dir, dataset):
'-crf', '19',
'-vf', 'fps=25',
'-pix_fmt', 'yuv420p',
- os.path.join(opt.render_dir, dataset + '.mp4')
+ os.path.join(opt.render_dir, out_fn + '.mp4')
])
def merge_files(file, crop_dir_list, ww, hh, overlap, merge_dir):
@@ -41,15 +42,13 @@ def merge_files(file, crop_dir_list, ww, hh, overlap, merge_dir):
for crop_dir_tuple in crop_dir_list:
x, y, w, h, ix, iy = crop_dir_tuple
crop_dir = "crop_{}_{}_{}_{}".format(x, y, w, h)
- image = Image.open("{}/{}/{}".format(args.dir, crop_dir, fn))
+ image = Image.open("{}/{}/{}".format(args.in_dir, crop_dir, fn))
crop = image.crop((overlap, overlap, image.size[0] - overlap, image.size[1] - overlap))
canvas.paste(crop, ((x - (ix * args.overlap)) * args.scale, (y - (iy * args.overlap)) * args.scale,))
canvas.save("{}/{}".format(merge_dir, fn))
def merge_dir():
overlap = args.overlap * args.scale
- partz = args.dir.trim('/').split('/')
- dataset = partz[-1]
crop_dirs = glob.glob("{}/crop_*".format(args.in_dir))
merge_dir = "{}/merged".format(args.in_dir)
os.makedirs(merge_dir, exist_ok=True)
@@ -88,7 +87,7 @@ def merge_dir():
pool.starmap(merge_files, dataset, chunksize)
if args.mov:
- make_movie(merge_dir, dataset)
+ make_movie(merge_dir, opt.out_fn)
if __name__ == "__main__":
merge_dir()