TargetDegrees=5
NVIEWS=fix((180/TargetDegrees)+1)
ImageAngles=(180*asin(fix(256*sin(findgen(NVIEWS)*TargetDegrees*!PI/180)+
$
0.5+(findgen(NVIEWS) eq 0))/256.0)/!PI)* $
(1-(2*((findgen(NVIEWS)*TargetDegrees) gt 90.0)))+ $
(180.0*((findgen(NVIEWS)*TargetDegrees) gt 90.0))
Spectra=BINDGEN(10,256)*0
Spectra[0,24]=2
Spectra[0,162]=3
Spectra[0,176]=3
Spectra[0,206]=3
Spectra[0,237]=3
Spectra[0,254]=3
Spectra[9,4]=5
Spectra[9,27]=4
Spectra[9,42]=4
Spectra[9,63]=4
Spectra[9,89]=4
Spectra[9,105]=5
Spectra[9,115]=3
Spectra[9,134]=5
Spectra[9,141]=5
Spectra[9,183]=5
Spectra[9,191]=5
Spectra[9,215]=5
Spectra[6,15]=8
Spectra[6,38]=8
Spectra[6,167]=8
Spectra[6,174]=8
Spectra[6,193]=8
Spectra[6,199]=7
Spectra[6,212]=8
Spectra[6,236]=8
Spectra[6,252]=6
Spectra[4,5]=15
Spectra[4,6]=17
Spectra[4,61]=20
Spectra[4,77]=16
Spectra[4,145]=21
Spectra[8,5]=15
Spectra[8,6]=17
Spectra[8,61]=20
Spectra[8,77]=16
Spectra[8,145]=21
Spectra[1,60]=14
Spectra[1,75]=14
Spectra[1,138]=13
Spectra[1,171]=16
Spectra[1,230]=14
Spectra[7,7]=15
Spectra[7,13]=12
Spectra[7,24]=14
Spectra[7,29]=13
Spectra[7,35]=14
Spectra[7,40]=13
Spectra[7,65]=14
Spectra[7,113]=14
Spectra[7,122]=18
Spectra[7,126]=14
Spectra[7,128]=17
Spectra[2,13]=15
Spectra[2,55]=15
Spectra[2,67]=17
Spectra[2,174]=14
Spectra[2,183]=17
Spectra[2,198]=16
Spectra[2,233]=17
Spectra[2,238]=13
Spectra[2,252]=17
Spectra[3,30]=24
Spectra[5,11]=23
Spectra[5,31]=27
Spectra[5,119]=24
Spectra[5,130]=28
Spectra[5,145]=24
Spectra[5,147]=27
Spectra[5,183]=29
Spectra[5,190]=23
Spectra[5,216]=31
Spectra[5,252]=28
OriginalPhantom=BINDGEN(256,256)*0
READ_GIF, PICKFILE(FILTER='*.gif'), OriginalPhantom
TVSCL,OriginalPhantom
OutFileName=PICKFILE(FILTER='*_000.gif', /WRITE)
OutImage=FINDGEN(256,256)*0.0
ThisSlice=FINDGEN(256,256)*0.0
FOR Image=0, NVIEWS-1 DO BEGIN
ThisFilename = STRMID(OutFileName, 0, RSTRPOS(OutFileName,'000.gif')
) + $
STRING(Image, FORMAT='(I3.3)') + '.gif'
FOR y=0, 255 DO BEGIN
FOR x=0, 255 DO BEGIN
ThisSlice[x, 0:255]=Spectra[ OriginalPhantom[x,y],
0:255]*1.0
ENDFOR
RIEMANN, OutImage, ThisSlice, ((ImageAngles[Image]*!PI)/180),
ROW=y, cubic=-0.5
if ((y mod 16) eq 0) Then tvscl, OutImage
ENDFOR
Window, 1
tvscl, OutImage
WRITE_GIF, ThisFilename, BYTE( (OutImage * 255.5)/ Max(OutImage)
), $
BINDGEN(256), BINDGEN(256), BINDGEN(256)
Window, 0
OutImage=OutImage*0.0
ENDFOR
END