-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path070-deskew.sh
More file actions
executable file
·77 lines (56 loc) · 1.59 KB
/
Copy path070-deskew.sh
File metadata and controls
executable file
·77 lines (56 loc) · 1.59 KB
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
#!/usr/bin/env bash
cd "$(dirname "$0")"
src=065-remove-page-borders
dst=$(basename "$0" .sh)
# empty pages:
# 100.0000
# 099.9999
# 099.9997
# ...
src_empty_pages_txt=067-find-empty-pages.txt
src_empty_pages_pattern='^(099\.999|100\.0000)'
mkdir -p $dst
t1=$(date --utc +%s)
num_pages=0
# array
empty_pages=(
$(grep -E "$src_empty_pages_pattern" "$src_empty_pages_txt" | cut -c10- | sort -n)
)
if [ ${#empty_pages[@]} != 0 ]; then
echo skipping deskew on empty pages: ${empty_pages[@]}
fi
# dict
declare -A is_empty_page
for page_number in ${empty_pages[@]}; do is_empty_page[$page_number]=1; done
for i in $src/*; do
# FIXME use $num_pages and $scan_format
page_number=${i%.tiff}
page_number=${page_number##*/}
page_number=${page_number#0}
page_number=${page_number#0}
page_number=${page_number#0}
page_number=${page_number#0}
o=$dst/${i##*/}
[ -e "$o" ] && continue
# dont deskew empty pages
# workaround: deskew fails on empty pages
# https://github.com/galfar/deskew/issues/71
if [ "${is_empty_page[$page_number]}" = 1 ]; then
echo skipping deskew on empty page $page_number
cp "$i" "$o"
continue
fi
deskew_args=(deskew -o "$o")
# add white background
deskew_args+=(-b FFFFFF)
# -a angle: Maximal expected skew angle (both directions) in degrees (default: 10)
# expected angle is -0.5 or +0.5
# deskew_args+=(-a 1)
deskew_args+=("$i")
echo + "${deskew_args[@]}"
"${deskew_args[@]}"
num_pages=$((num_pages + 1))
# [ "$page_number" = 10 ] && break # debug
done
t2=$(date --utc +%s)
echo "done $num_pages pages in $((t2 - t1)) seconds"