#! /bin/bash
# Last edited on 2017-06-12 01:24:28 by stolfilocal

# Usage: $0 {STACK_DIR} {GEOM} {RESIZE} {ROW}

# Extracts the rectangle {GEOM} from "{STACK_DIR}/align/frame_{NNNNN}.png" 
# and saves it as a grayscale PNG file in "{STACK_DIR}/clip_00/frame_{NNNNN}.png",
# after resizing it by {RESIZE}.

# Then extracts a single row number {ROW} from that
# clip and converts it to a text file  "{STACK_DIR}/line_00/frame_{NNNNN}.dat" 
# with pixel intensities along that row, suitable for plotting.

# Then generates the plot "{STACK_DIR}/line_00/frame_{NNNNN}.png"

stack_dir="$1"; shift
geom="$1"; shift
resize="$1"; shift
row="$1"; shift

trap "exit 1" SIGINT SIGTERM
cdir="$PWD"

if [[ ! -d ${stack_dir} ]]; then
  echo "** ${stack_dir} : no such directory" 1>&2 ; exit 1
fi

cd ${stack_dir}

rm -rf clip_00 && mkdir -pv clip_00 
rm -rf line_00 && mkdir -pv line_00

for ifile in `ls align/frame_[0-9][0-9][0-9][0-9][0-9].png` ; do
  frame="${ifile%.*}"
  frame="${frame#align/}"
  # echo "${frame}" 1>&2
  cfile="clip_00/${frame}.png"
  dfile="line_00/${frame}.dat"
  pfile="line_00/${frame}.png"
  convert ${ifile} +repage -crop "${geom}" +repage ${cfile}
  convert ${cfile} -depth 16 -colorspace gray -crop "x1+0+${row}" PGM:- \
    | pnmnoraw \
    | tr ' ' '\n' \
    | tail --lines=+5 \
    > ${dfile}
  ${cdir}/plot_scanline.sh ${dfile}
  if [[ -s line_00/${frame}.png ]]; then
    display -title "${frame}" ${cfile} ${pfile} 
  fi
done
  
