File: blend

package info (click to toggle)
mrtrix3 3.0~rc3%2Bgit135-g2b8e7d0c2-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 34,548 kB
  • sloc: cpp: 117,101; python: 6,472; sh: 638; makefile: 231; xml: 39; ansic: 20
file content (32 lines) | stat: -rwxr-xr-x 1,606 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python3
import os
import sys

if len(sys.argv) <= 1:
  sys.stderr.write('A script to blend two sets of movie frames together with a desired overlap.\n')
  sys.stderr.write('The input arguments are two folders containing the movie frames (eg. output from the MRview screenshot tool), and the desired number of overlapping frames.\n')
  sys.stderr.write('eg: blend folder1 folder2 20 output_folder\n')
  sys.exit(1)

input_folder1 = sys.argv[1]
input_folder2 = sys.argv[2]
file_list1 = sorted(os.listdir(input_folder1))
file_list2 = sorted(os.listdir(input_folder2))
num_overlap =  int(sys.argv[3])
output_folder = sys.argv[4]

if not os.path.exists(output_folder):
  os.mkdir(output_folder)

total_num_output_frames = len(file_list1) + len(file_list2) - num_overlap
for i in range(total_num_output_frames):
  file_name = 'frame' + '%0*d' % (5, i) + '.png'
  if i <= len(file_list1) - num_overlap:
    os.system('cp -L ' + input_folder1 + '/' + file_list1[i] + ' ' + output_folder + '/' + file_name)
  if len(file_list1) - num_overlap < i < len(file_list1):
    i2 = i - (len(file_list1) - num_overlap) - 1
    blend_amount = 100 * float(i2 + 1) / float(num_overlap)
    os.system('convert ' + input_folder1 + '/' + file_list1[i] + ' ' + input_folder2 + '/' + file_list2[i2] + ' -alpha on -compose blend  -define compose:args=' + str(blend_amount) + ' -gravity South  -composite ' + output_folder + '/' + file_name)
  if i >= (len(file_list1)):
    i2 = i - (len(file_list1) - num_overlap) - 1
    os.system('cp -L ' + input_folder2 + '/' + file_list2[i2] + ' ' + output_folder + '/' + file_name)