[Numpy-discussion] Update for IM. a small image processing system

Edward C. Jones edcjones at erols.com
Fri Jan 2 18:16:01 CST 2004


                                 IM

I have uploaded a new version of my small image processing system IM to
"http://members.tripod.com/~edcjones/IM-01.01.04.tar.gz". Most of the code
in IM (pronounced "I'm") is inferior to "nd_image" so I will eventually
convert it all to "nd_image".

Some features are:
    Wrappers for some useful functions in the numarray API.
        NA_GetType
        NA_TypeName
        NA_GetTypeFromTypeno
        NA_TypenoFromType
    SafeCastCheck
    Standardized parameters
        Module(arrin), TypeCode(arrin), Width(arrin), Height(arrin),
        Bands(arrin), Mode(arrin), NatypeOrMode(arrin), and
        BytesPerItem(arrin)
    Open and Save
    ArrayToArrayCast
        Converts between array types and formats. Out of range values are
        clipped.
    Some additions to numarray
        BlockReduce, MultiReduce, BlockMean, CountNonZero, CountZeros,
        Stretch (grey level range), Zoom, Shrink, and Saturate.
        Convert an array to a list of (array[i,j], i, j) or a dictionary
            with entries d[(i,j)] = array[i,j].
    Sliding window operators including MeanX and HaarX which have masking. 
        Only the unmasked pixels are averaged when finding a mean. For MeanX
        and HaarX, a border is added to the image. The pixels in the border
        become the masked pixels.

                              THOUGHTS

There are many open source image processing systems but most of them get
only to the Canny edge operator and then stop. A sample of the better ones
are:

    ImageMagick   http://www.imagemagick.org/
    OpenCV        http://www.intel.com/research/mrl/research/opencv/
    Xite          http://www.ifi.uio.no/forskning/grupper/dsb/Software/Xite/
    VXL           http://vxl.sourceforge.net/
    Gandalf       http://sourceforge.net/projects/gandalf-library/
    imgSeek       http://imgseek.sourceforge.net/

And then there is the huge and hard to use "Image Understanding Environment"
(IUE) at "http://www.aai.com/AAI/IUE/IUE.html". Has anyone used this?

A good starting point is "The Computer Vision Homepage" at
"http://www-2.cs.cmu.edu/~cil/vision.html". At this site there is a list of
published software. A well-known example is the Kanade-Lucas-Tomasi Feature
Tracker coded by Stan Birchfield at
"http://vision.stanford.edu/~birch/klt/". Thanks. Note how short the
software list is compared with the size of the computer vision lterature.

Why does so little software exists for the more advanced parts of computer
vision? I feel this is mostly because academic researchers seldom publish
their software. In some cases (for example, face recognition software) there
are financial motives. In most cases. I suspect that there is no pressure on
the researchers from journals or department chairmen to publish the
software. So they avoid the work of making their software presentable by not
releasing it. The result are many unreproduced experiments and slow
transitions of new algorithms out of academia.

A good computer vision system
    Has an easy to use and widely used scripting language.
        Python
    Has powerful array processing capabilities.
        numarray, nd_image
    Wraps a variety of other computer vision systems. The wrapping process
    should be straightforward.
        SWIG, Pyrex, Psyco, ..., and the Python API.
    Provides a uniform interface to its components.
    Is used by many people.






More information about the Numpy-discussion mailing list