ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/pacuity.csh
Revision: 3.1
Committed: Fri Sep 20 16:44:01 1996 UTC (27 years, 7 months ago) by greg
Content type: application/x-csh
Branch: MAIN
Log Message:
Initial revision

File Contents

# Content
1 #!/bin/csh -f
2 # SCCSid "$SunId$ LBL"
3 #
4 # Adjust picture acuity according to human visual abilities
5 #
6 if ($#argv != 1) then
7 echo "Usage: $0 input.pic > output.pic"
8 exit 1
9 endif
10 set td=/usr/tmp
11 set tfc1=$td/ac$$.cal
12 set tf=($td/c{1,2,4,8,16,32}d$$.pic $tfc1)
13 set ifile=$1
14 onintr quit
15 tabfunc -i acuity > $tfc1 << EOF
16 # Log10 luminance vs. visual acuity in cycles/degree
17 -2.804 2.09
18 -2.363 3.28
19 -2.076 3.79
20 -1.792 4.39
21 -1.343 6.11
22 -1.057 8.83
23 -0.773 10.94
24 -0.371 18.66
25 -0.084 23.88
26 0.2 31.05
27 0.595 37.42
28 0.882 37.68
29 1.166 41.60
30 1.558 43.16
31 1.845 45.30
32 2.129 47.00
33 2.577 48.43
34 2.864 48.32
35 3.148 51.06
36 3.550 51.09
37 EOF
38 set pres=(`getinfo -d < $ifile | sed 's/^-Y \([1-9][0-9]*\) +X \([1-9][0-9]*\)$/\2 \1/'`)
39 set vp=`vwright V < $ifile`
40 set aext=(`pextrem -o $ifile | rcalc -f $tfc1 -e '$1=acuity(log10(179*(.265*$3+.67*$4+.065*$5)))'`)
41 ( rcalc -e "$vp" -e "A:3879*sqrt(Vhn/$pres[1]*Vvn/$pres[2])" \
42 -e 'f=60/A/2/$1;cond=if(1.5-$1,1,if(1-f,-1,if($1-'"$aext[2]"',-1,$1-'"$aext[1])))" \
43 -o 'pfilt -1 -r 2 -x /${f} -y /${f} '"$ifile | pfilt -1 -r 1 -x $pres[1] -y $pres[2] > $td/"'c${$1}d'$$.pic \
44 | csh -f ) << EOF
45 1
46 2
47 4
48 8
49 16
50 32
51 EOF
52 cat >> $tfc1 << _EOF_
53 target_acuity = acuity(log10(WE/le(1)*li(1)));
54 findfuzzy(i) = if(target_acuity-picture_acuity(i),i,if(i-1.5,findfuzzy(i-1),1));
55 fuzzy_picture = findfuzzy(nfiles-1);
56 clear_picture = fuzzy_picture + 1;
57 clarity_ex = (target_acuity-picture_acuity(fuzzy_picture)) /
58 (picture_acuity(clear_picture)-picture_acuity(fuzzy_picture));
59 clarity = if(clarity_ex-1, 1, if(-clarity_ex, 0, clarity_ex));
60 ro = clarity*ri(clear_picture) + (1-clarity)*ri(fuzzy_picture);
61 go = clarity*gi(clear_picture) + (1-clarity)*gi(fuzzy_picture);
62 bo = clarity*bi(clear_picture) + (1-clarity)*bi(fuzzy_picture);
63 picture_acuity(n) : select(n,1,
64 _EOF_
65 set pf=($td/c1d$$.pic)
66 foreach i (2 4 8 16 32)
67 if ( -f $td/c${i}d$$.pic ) then
68 set pf=( $pf $td/c${i}d$$.pic )
69 echo -n "$i," >> $tfc1
70 endif
71 end
72 set pf=( $pf $ifile )
73 rcalc -n -e "$vp" -e "A:3879*sqrt(Vhn/$pres[1]*Vvn/$pres[2])" \
74 -o '${60/A});' >> $tfc1
75 getinfo < $ifile | egrep '^((VIEW|EXPOSURE|PIXASPECT|PRIMARIES|COLORCORR)=|[^ ]*(rpict|rview|pinterp) )'
76 pcomb -f $tfc1 $pf
77 quit:
78 rm -f $tf