diff options
Diffstat (limited to 'cut_to_borders.sh')
-rwxr-xr-x | cut_to_borders.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cut_to_borders.sh b/cut_to_borders.sh new file mode 100755 index 0000000..3de37a3 --- /dev/null +++ b/cut_to_borders.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +# get frames path from cli args +framespath=${1:-} +[ -z "$framespath" ] && echo "no framespath provided" && exit 1 + +# draw random pic +mkdir -p gray +imageName=$(find "$framespath" -type f | sort -R | tail -1) +shavedName="gray/"$(basename "$imageName") + +printf "working with $imageName\r" + +# detect image border: +increment=5 +x=150 +limitX=600 +y=50 +colorFuzz=.01 +# borderColor="#f7d9ac" +borderColor="#ffffff" + +while true +do + pixelColor=$(magick convert "$imageName" -crop 1x1+$x+$y -depth 8 txt:- | awk ' NR==2 {print $3}') + colorDiff=$(magick compare -metric RMSE xc:"$borderColor" xc:"$pixelColor" null: 2>&1 | sed "s/.*(\(.*\))/\1/") + # break condition success + echo "fuzz: $colorFuzz; diff: $colorDiff; point: $x:$y" + [ 1 -eq "$(echo "$colorFuzz > $colorDiff" | bc)" ] && echo "found border: $x:$y" \ + && magick convert "$imageName" -colorspace Gray -shave "${x}x0" "$shavedName" \ + && break + # break condition fail + [ "$x" -gt "$limitX" ] && echo "failed to find border" && break + # update point + x=$((x+increment)) +done + +# to functions + +# cut left border +# cut right border +# assume position + |