blob: 304068478377125f5096f5990632b703f6c1d272 (
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
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#!/bin/bash
BASENAME=tmp
ITER=1
A_ITER=1
B_ITER=1
FRAMES=200
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
;;
# --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/
B_DIR="null"
for A_DIR in "${POSITIONAL[@]}"
do
if [ ! -d "$A_DIR" ]
then
echo "${A_DIR}: not a directory.."
continue
fi
if [ $B_DIR -eq 'null' ]
then
echo "${A_DIR}: starting iteration..."
B_DIR=$A_DIR
B_ITER=A_ITER
continue
fi
a=$(printf "%s/frame_%05d.png" $A_DIR $A_ITER)
b=$(printf "%s/frame_%05d.png" $B_DIR $((B_ITER + FRAMES)))
echo "A: $a"
echo "B: $b"
convert -verbose "$a" PNG24:tmp_normalized_0.png
convert -verbose "$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 $A_ITER)
b_f=$(printf "%s/frame_%05d.png" $B_DIR $B_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))
A_ITER=$((A_ITER+1))
B_ITER=$((B_ITER+1))
done
rm -rf flow/ tmp_normalized*.png
done
ffmpeg -i tmp/frame_%05d.png -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 "mixed_${BASENAME}.mp4"
cd tmp/
mkdir 256
for i in *; do convert $i -resize '256x256!' 256/$i; done
cd ..
mv tmp mixed_${BASENAME}
|