def iagshow(f):
import Numeric
import MLab
import View
if type(f).__name__ == 'tuple':
it = 0
d = Numeric.product(f[0].shape[0:2])
for i in f:
iaux = Numeric.ravel(i)
nz = Numeric.nonzero(iaux)
if 0 <= iaux <= 1:
iaux = 255*iaux
if it is 0: # gray
img = Numeric.zeros((3,i.shape[0],i.shape[1]))
img[0,:,:] = i
img[1,:,:] = i
img[2,:,:] = i
elif it is 1: # red
Numeric.put(Numeric.ravel(img), nz , Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+ d, 0)
Numeric.put(Numeric.ravel(img), nz+2*d, 0)
elif it is 2: # green
Numeric.put(Numeric.ravel(img), nz , 0)
Numeric.put(Numeric.ravel(img), nz+ d, Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+2*d, 0)
elif it is 3: # blue
Numeric.put(Numeric.ravel(img), nz , 0)
Numeric.put(Numeric.ravel(img), nz+ d, 0)
Numeric.put(Numeric.ravel(img), nz+2*d, Numeric.take(iaux, nz))
elif it is 4: # cyan
Numeric.put(Numeric.ravel(img), nz , 0)
Numeric.put(Numeric.ravel(img), nz+ d, Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+2*d, Numeric.take(iaux, nz))
elif it is 5: # magenta
Numeric.put(Numeric.ravel(img), nz , Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+ d, 0)
Numeric.put(Numeric.ravel(img), nz+2*d, Numeric.take(iaux, nz))
elif it is 6: # yellow
Numeric.put(Numeric.ravel(img), nz , Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+ d, Numeric.take(iaux, nz))
Numeric.put(Numeric.ravel(img), nz+2*d, 0)
else: # black
Numeric.put(Numeric.ravel(img), nz , 0)
Numeric.put(Numeric.ravel(img), nz+ d, 0)
Numeric.put(Numeric.ravel(img), nz+2*d, 0)
it = it + 1
else:
img = f
img = Numeric.asarray(img)
faux = Numeric.ravel(img)
mi = min(faux)
ma = max(faux)
if abs(mi - ma) < 1E-10:
print 'Image is constant with value %3f.0\n' %(faux[0])
me = faux[0]
st = 0
else:
aux = faux.astype('d')
me = MLab.mean(aux)
st = MLab.std(aux)
print img.shape, 'Min=', mi, 'Max=', ma, 'Mean=%.3f' %(me), 'Std=%.2f' %(st)
if (mi != 0) or (ma != 255):
g = ianormalize(img, [0,255])
else:
g = img
g = g.astype('b')
try:
View.view(g)
except:
iaerror('error: visualization is not possible')
return g