[iashow] [Up] [iaerror] Visualization

iagshow
Matrix of the image display.

Synopsis

g = iagshow( f )

Implemented in Python.

Input

f Image. Gray-scale (uint8 or uint16) or binary image (logical).

Image.

Output

g Image. Gray-scale (uint8 or uint16) or binary image (logical).

Description

Return the matrix of the image display.

Source Code

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
    

See also

iashow Image display.
[iashow] [Up] [iaerror] http://www.python.org