backback

Figure 10: Surface Smoothing

_mrihead.png

The volumes for this figures are processed with entirely seperate software, by Tolga Tasdizen and Ross Whitaker for their IEEE Vis'02 paper Geometric Surface Smoothing via Anisotropic Diffusion of Normals. Contact them for specifics of how the volumes were generated. The format is gzip-compressed Vispack; Unu can extract the data from these via unu make.

The usual song and dance to create the transfer functions:
echo "0 1" \
 | unu reshape -s 2 \
 | unu resample -s 512 -k tent -o ramp.nrrd

echo "-1 0     -0.05 0    0.0.5 1   1 1" \
 | unu reshape -s 2 4 \
 | unu imap -r -i ramp.nrrd -m - \
 | unu axinsert -a 0 -l "A" \
 | unu axinfo -a 1 -l "gage(v)" -mm -1 1 -o val-txf.nrrd

echo "0 0.8 0.8 0.8     0.8 0.9 0.5 0.5   3 0.9 0.7 0.2    5 0.1 1.0 0.1   10 0.7 1.0 1.0" \
 | unu reshape -s 4 5 \
 | unu imap -r -i ramp.nrrd -m - \
 | unu axinfo -a 0 -l "RGB" \
 | unu axinfo -a 1 -l "gage(cv)" -mm 0 0.4 -o cv-txf.nrrd

Two aliases, one for making a volume, and for rendering it:

alias MAKE unu make -s 276 276 215 -sp 1 1 1 -t float \
  -en little -e gzip -bs 16

alias MITER miter -i - \
   -fr 7 -20 6 -up -1 0 0 -rh \
   -dn -1 -di 0 -df 1 -ar \
   -ur -0.57 0.33 -vr -0.45 0.65 \
   -is 360 440 -step 0.0025 -nt 10 \
   -k00 cubic:0,0.5 -k11 cubicd:1,0 -k22 cubicdd:1,0 \
   -txf val-txf.nrrd cv-txf.nrrd \
   -ads 0.4 0.6 0.0 \
   -o -

Go:

foreach IMG ( 000 050 100 200 320 380 )
  MAKE -i values${IMG}.vol.gz \
   | MITER | overrgb -i - -b 0 0 0 -o ${IMG}.png
end

Composing the figure, complete with colorbar

unu join -i {000,050,100,200,320,380}.png -a 3 \
 | unu crop -min 0 21 26 0 -max M m+327 m+397 M \
 | unu pad -min 0 -1 -1 0 -max M M+1 M+1 M -b pad -v 0 \
 | unu resample -s = x0.85 x0.85 = \
 | unu axsplit -a 3 -s 3 2 \
 | unu permute -p 0 1 3 2 4 \
 | unu axmerge -a 1 | unu axmerge -a 2 \
 | unu pad -min 0 0 0 -max M M M+53 -b pad -v 255 -o tmp.png

unu axinsert -i cv-txf.nrrd -a 1 \
 | unu pad -min 0 0 0 -max M 46 M \
 | unu swap -a 1 2 \
 | unu resample -s = x1.4 = -k tent \
 | unu quantize -b 8 \
 | unu inset -i tmp.png -s - -min 0 30 683 -o mrihead.png

rm -rf tmp.png

unu resample -i mrihead.png -s = x0.4 x0.4 -o _mrihead.png
unu resample -i mrihead.png -s = x0.17 x0.17 -o __mrihead.png