#! /bin/sh # This script tests: pamslice pamdeinterlace # Also requires: pamfile pamcut pamtopnm pamflip echo "Test 1. Should print 139976034 137 twice" # Slice rows, one by one, out of maze.pbm. # Add header and reconstruct pbm image. # Note that in pamslice output 0 is white and 1 is black: opposite of PBM mwidth=$(pamfile -size maze.pbm | cut -d " " -f 1) height=16 pamcut -top=0 -left=0 -height=${height} maze.pbm | cksum (echo "P1" echo "${mwidth} ${height}" for i in `seq 0 $((${height}-1))` do pamslice -row=$i maze.pbm done | cut -d" " -f2- | sed 'y/01/10/' ) \ | pamtopnm | cksum echo "Test 2. Should print 1624460505 574 three times" # Slice rows, one by one, out of ppm test image # We take a part out of testimg.ppm with pamcut for processing the # whole image takes much time. # Add header and reconstruct ppm image. tmpdir=${tmpdir:-/tmp} test1711_ppm=${tmpdir}/test1711.ppm pamcut -left=50 -top=50 -width=17 -height=11 testimg.ppm | \ tee ${test1711_ppm} | cksum (echo "P3" echo "17 11" echo "255" for i in 0 1 2 3 4 5 6 7 8 9 10 # for i in `seq 0 10` do pamslice -row=${i} ${test1711_ppm} done | cut -d" " -f2- ) \ | pamtopnm | cksum # Same as above test 2, but take cols instead of rows. (echo "P3" echo "11 17" echo "255" for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # for i in `seq 0 16` do pamslice -col=${i} ${test1711_ppm} done | cut -d " " -f2- ) | pamflip -xy | cksum echo "Test 3. Should print 1624460505 574" # Divide input image into two with pamdeinterlace and recombine. testeven_ppm=${tmpdir}/testeven.ppm testodd_ppm=${tmpdir}/testodd.ppm pamdeinterlace -takeodd ${test1711_ppm} > ${testodd_ppm} pamdeinterlace -takeeven ${test1711_ppm} > ${testeven_ppm} ( echo "P3" echo "17 11" echo "255" ( for i in 0 1 2 3 4 do pamslice -row=${i} ${testeven_ppm} pamslice -row=${i} ${testodd_ppm} done pamslice -row=5 ${testeven_ppm}; ) | cut -d" " -f2- ) | pamtopnm | cksum rm ${test1711_ppm} ${testodd_ppm} ${testeven_ppm}