equal
deleted
inserted
replaced
|
1 #!/bin/csh -f |
|
2 # RCSid: $Id: pveil.csh,v 3.4 2008/11/10 19:08:19 greg Exp $ |
|
3 # |
|
4 # Add veiling glare to picture |
|
5 # |
|
6 if ($#argv != 1) then |
|
7 echo "Usage: $0 input.hdr > output.hdr" |
|
8 exit 1 |
|
9 endif |
|
10 set ifile=$1 |
|
11 set td=/tmp |
|
12 set gf=$td/av$$.gs |
|
13 set cf=$td/av$$.cal |
|
14 set tf=($gf $cf) |
|
15 onintr quit |
|
16 findglare -r 400 -c -p $ifile \ |
|
17 | sed -e '1,/^BEGIN glare source$/d' -e '/^END glare source$/,$d' \ |
|
18 > $gf |
|
19 if ( -z $gf ) then |
|
20 cat $ifile |
|
21 goto quit |
|
22 endif |
|
23 ( rcalc -e '$1=recno;$2=$1;$3=$2;$4=$3;$5=$4*$5' $gf \ |
|
24 | tabfunc SDx SDy SDz I ; cat ) > $cf << '_EOF_' |
|
25 N : I(0); |
|
26 K : 9.2; { should be 9.6e-3/PI*(180/PI)^2 == 10.03 ? } |
|
27 bound(a,x,b) : if(a-x, a, if(x-b, b, x)); |
|
28 Acos(x) : acos(bound(-1,x,1)); |
|
29 sq(x) : x*x; |
|
30 mul(ct) : if(ct-cos(.5*PI/180), K/sq(.5), K/sq(180/PI)*ct/sq(Acos(ct))); |
|
31 Dx1 = Dx(1); Dy1 = Dy(1); Dz1 = Dz(1); { minor optimization } |
|
32 cosa(i) = SDx(i)*Dx1 + SDy(i)*Dy1 + SDz(i)*Dz1; |
|
33 sum(i) = if(i-.5, mul(cosa(i))*I(i)+sum(i-1), 0); |
|
34 veil = le(1)/WE * sum(N); |
|
35 ro = ri(1) + veil; |
|
36 go = gi(1) + veil; |
|
37 bo = bi(1) + veil; |
|
38 '_EOF_' |
|
39 getinfo < $ifile | egrep '^((VIEW|EXPOSURE|PIXASPECT|PRIMARIES|COLORCORR)=|[^ ]*(rpict|rview|pinterp) )' |
|
40 pcomb -f $cf $ifile |
|
41 quit: |
|
42 rm -f $tf |