summaryrefslogtreecommitdiff
path: root/warp-mix.sh
blob: abf107d0ea7fd9d1d59e37aedcd55ff137eba56d (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash

BASENAME=tmp
ITER=1
FRAMES=200
A_DIR="A"
B_DIR="B"
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"

case $key in
    -f|--frames)
    FRAMES=$(expr $2 + 0)
    shift # past argument
    shift # past value
    ;;
    -s|--start)
    ITER=$(expr $2 + 1)
    shift # past argument
    shift # past value
    ;;
    -o|--output)
    OUTPUT_DIR="$2"
    BASENAME=$(basename $OUTPUT_DIR)
    shift # past argument
    shift # past value
    ;;
    -a|--a_dir)
    A_DIR="$2"
    shift # past argument
    shift # past value
    ;;
    -b|--b_dir)
    B_DIR="$2"
    shift # past argument
    shift # past value
    ;;
    # --default)
    # DEFAULT=YES
    # shift # past argument
    # ;;
    *)    # unknown option
    POSITIONAL+=("$1") # save it in an array for later
    shift # past argument
    ;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters

rm -rf tmp/
mkdir tmp/

echo $dirs

a=$(printf "%s/frame_%05d.png" $A_DIR $ITER)
b=$(printf "%s/frame_%05d.png" $B_DIR $((ITER + FRAMES)))

convert -verbose "$DIRECTORY/$a" PNG24:tmp_normalized_0.png
convert -verbose "$DIRECTORY/$b" PNG24:tmp_normalized_1.png

./makeOptFlow.sh tmp_normalized_%01d.png flow 0

STEP=$(bc -l <<< "1 / $FRAMES")
SEQUENCE=`seq 0.0 $STEP 1.0`

for scale in $SEQUENCE; do
  scale="${scale/,/.}"
  echo "${ITER}: ${scale}"
  a_f=$(printf "%s/frame_%05d.png" $A_DIR $ITER)
  b_f=$(printf "%s/frame_%05d.png" $B_DIR $ITER)
  th torch_warp.lua \
    -flow_file flow/backward_1_0.flo \
    -source_image $a_f \
    -output_image warp_0.png \
    -scale $scale
  th torch_warp.lua \
    -flow_file flow/forward_0_1.flo \
    -source_image $b_f \
    -output_image warp_1.png \
    -scale $(bc <<< "1.0-$scale")
  OUT=$(printf "tmp/frame_%05d.png" $ITER)
  convert warp_0.png warp_1.png -compose blend -define compose:args=$(bc <<< "100*$scale/1") -composite $OUT
  rm warp_0.png warp_1.png

  ITER=$((ITER+1))
done

rm -rf flow/ tmp_normalized*.png

ffmpeg -i tmp/frame_%05d.png -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 "mixed_${BS}.mp4"

cd tmp/
mkdir 256
for i in *; do convert $i -resize '256x256!' 256/$i; done
cd ..
mv tmp mixed_${BS}