4 |
|
# Compute 1976 CIE Lab deltaE* between two Radiance pictures |
5 |
|
# |
6 |
|
if ($#argv != 2) then |
7 |
< |
echo "Usage: $0 picture1 picture2 > output.pic" |
7 |
> |
echo "Usage: $0 picture1 picture2 > output.hdr" |
8 |
|
exit 1 |
9 |
|
endif |
10 |
|
set cielab='sq(x):x*x;Ls(Yi):if(Yi/Yw-.01,116*(Yi/Yw)^(1/3)-16,903.3*Yi/Yw);as(Xi,Yi,Zi):500*((Xi/Xw)^(1/3)-(Yi/Yw)^(1/3));bs(Xi,Yi,Zi):200*((Yi/Yw)^(1/3)-(Zi/Zw)^(1/3));dE(X1,Y1,Z1,X2,Y2,Z2):sqrt(sq(Ls(Y1)-Ls(Y2))+sq(as(X1,Y1,Z1)-as(X2,Y2,Z2))+sq(bs(X1,Y1,Z1)-bs(X2,Y2,Z2)));' |
22 |
|
if ( "`getinfo < $f2:q | grep '^FORMAT=32-bit_rle_xyze'`" == "" ) then |
23 |
|
set inp2='x2=X(ri(2),gi(2),bi(2));y2=Y(ri(2),gi(2),bi(2));z2=Z(ri(2),gi(2),bi(2))' |
24 |
|
endif |
25 |
< |
pfilt -1 -x 128 -y 128 -p 1 $f1:q | pvalue -o -h -H -d > /tmp/tf$$.dat |
26 |
< |
set wht=(`total -u /tmp/tf$$.dat`) |
27 |
< |
set avg=`rcalc -e '$1=$2' /tmp/tf$$.dat | total -m` |
28 |
< |
rm /tmp/tf$$.dat |
25 |
> |
set tempf=`mktemp /tmp/tf.XXXXXX` |
26 |
> |
pfilt -1 -x 128 -y 128 -p 1 $f1:q | pvalue -o -h -H -d > $tempf |
27 |
> |
set wht=(`total -u $tempf`) |
28 |
> |
set avg=`rcalc -e '$1=$2' $tempf | total -m` |
29 |
> |
rm $tempf |
30 |
|
pcomb -e $cielab:q -e $rgb2xyz:q \ |
31 |
|
-e "Yw:179*3*$avg; Xw:$wht[1]*Yw/$wht[2]; Zw:$wht[3]*Yw/$wht[2]" \ |
32 |
|
-e $inp1:q -e $inp2:q -e 'lo=dE(x1,y1,z1,x2,y2,z2)' \ |