orig/ran2tiff.csh
changeset 0 0aa115157c9c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/orig/ran2tiff.csh	Sat Apr 09 17:55:16 2011 +0100
@@ -0,0 +1,113 @@
+#!/bin/csh -fe
+# Convert Radiance animation frames to TIFF output
+#
+set histosiz=200
+set pfwt=0.9
+set outdir=""
+set pcopts=()
+set tfopts=()
+if (! $#argv) set argv=(DUMMY)
+# Process options for pcond and ra_tiff
+while ("$argv[1]" =~ -*)
+	switch ("$argv[1]")
+	case -W:
+		shift argv
+		set pfwt=$argv[1]
+		breaksw
+	case -H:
+		shift argv
+		set histof=$argv[1]:q
+		breaksw
+	case -D:
+		shift argv
+		if (! -d $argv[1]:q ) then
+			echo "Directory $argv[1] does not exist"
+			exit 1
+		endif
+		set outdir=$argv[1]:q/
+		breaksw
+	case -h*:
+	case -a*:
+	case -v*:
+	case -s*:
+	case -c*:
+	case -l*:
+		set pcopts=($pcopts $argv[1])
+		breaksw
+	case -u:
+	case -d:
+	case -f:
+		set pcopts=($pcopts $argv[1-2])
+		shift argv
+		breaksw
+	case -p:
+		shift argv
+		set pcopts=($pcopts -p $argv[1-6])
+		shift argv; shift argv; shift argv; shift argv; shift argv
+		breaksw
+	case -z:
+	case -b:
+	case -w:
+		set tfopts=($tfopts $argv[1])
+		breaksw
+	case -g:
+		shift argv
+		set tfopts=($tfopts -g $argv[1])
+		breaksw
+	default:
+		echo "$0: bad option: $argv[1]"
+		exit 1
+	endsw
+	shift argv
+end
+if ($#argv < 2) then
+	echo Usage: "$0 [-W prev_frame_wt][-H histo][-D dir][pcond opts][ra_tiff opts] frame1 frame2 .."
+	exit 1
+endif
+# Get shrunken image luminances
+set vald=`mktemp -d /tmp/val.XXXXXX`
+foreach inp ($argv:q)
+	set datf="$inp:t"
+	set datf="$vald/$datf:r.dat"
+	pfilt -1 -x 128 -y 128 -p 1 $inp:q \
+		| pvalue -o -h -H -b -df \
+		| rcalc -if1 -e 'L=$1*179;cond=L-1e-7;$1=log10(L)' \
+		> $datf:q
+end
+# Get Min. and Max. log values
+set Lmin=`cat $vald/*.dat | total -l | rcalc -e '$1=$1-.01'`
+set Lmax=`cat $vald/*.dat | total -u | rcalc -e '$1=$1+.01'`
+if ($?histof) then
+	if (-r $histof) then
+		# Fix min/max and translate histogram
+		set Lmin=`sed -n '1p' $histof | rcalc -e 'min(a,b):if(a-b,b,a);$1=min($1,'"$Lmin)"`
+		set Lmax=`sed -n '$p' $histof | rcalc -e 'max(a,b):if(a-b,a,b);$1=max($1,'"$Lmax)"`
+		tabfunc -i hfunc < $histof > $vald/oldhist.cal
+		cnt $histosiz \
+			| rcalc -e "L10=$Lmin+($Lmax-$Lmin)/$histosiz"'*($1+.5)' \
+				-f $vald/oldhist.cal -e '$1=L10;$2=hfunc(L10)' \
+			> $vald/oldhisto.dat
+	endif
+endif
+foreach inp ($argv:q)
+	set datf="$inp:t"
+	set datf="$vald/$datf:r.dat"
+	set outp="$inp:t"
+	set outp="$outdir$outp:r.tif"
+	endif
+	histo $Lmin $Lmax $histosiz < $datf > $vald/newhisto.dat
+	if (-f $vald/oldhisto.dat) then
+		rlam $vald/newhisto.dat $vald/oldhisto.dat \
+			| rcalc -e '$1=$1;$2=$2+$4*'$pfwt \
+			> $vald/histo.dat
+	else
+		mv $vald/{new,}histo.dat
+	endif
+	pcond $pcopts -I $inp:q < $vald/histo.dat \
+		| ra_tiff $tfopts - $outp:q
+	mv $vald/{,old}histo.dat
+end
+if ($?histof) then
+	cp -f $vald/oldhisto.dat $histof
+endif
+rm -rf $vald