[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
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.
Module(arrin), TypeCode(arrin), Width(arrin), Height(arrin),
Bands(arrin), Mode(arrin), NatypeOrMode(arrin), and
Open and Save
Converts between array types and formats. Out of range values are
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.
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
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.
Has powerful array processing capabilities.
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