Khoros is a sophisticated visual programming and scientific software development environment, that also includes extensive image processing facilities. It is a very large package because it does a lot more than just image processing. However, it is available free via FTP from several sites around the world. Khoros was developed at the University of New Mexico and the developers have recently formed a company to continue the work on Khoros. The company is called Khoral Research (Khoral Research Inc, 6001 Indian School Rd, Ne, Suite 200, Albuquerque, NM 87110, USA; Tel:(505)837-6500; Fax:(505)881-3842). You can find out more about Khoros by pointing a World Wide Web browser such as Netscape to

http://www.khoros.unm.edu/

Apart from including a wide range of image processing tools, Khoros also allows you to link operators together in a graphical way to form image processing pipelines.

In addition to the standard operators you see here, there are also user-contributed toolboxes for Khoros available free via FTP which provide virtually any additional operator you can think of. See the Khoros World Wide Web home page for details.

Khoros is only available for UNIX systems. The version described here
is version 1.0. The latest version is Khoros 2.0 which is quite
different in appearance to Khoros 1.0. Strangely, Khoros 2.0 contains
*fewer* image processing functions than Khoros 1.0 --- mainly
because the developers are trying to emphasize that it is more than
just an image processing package. However, the toolboxes mentioned
above can be added to Khoros 2.0 to give it virtually any operators
you require.

When using *cantata*, the Khoros visual programming environment,
image processing operations are accessed using pull-down menus. In the
tables below, the locations of each operator within the menu structure
is shown in the *NOTES* column, *e.g.* to use the addition operator,
first open the `Arithmetic' menu, then open the `Binary Arithmetic'
sub-menu and from that menu select the `Add' option. Where the specified
menu path ends in an ellipsis (...), this indicates that at this stage
a dialog box opens which the user can use to select the details of the
operation to be performed.

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Addition | Yes | Arithmetic/Binary Arithmetic/Add | | Subtraction | Yes | Arithmetic/Binary Arithmetic/Subtract | | Multiplication | Yes | Arithmetic/Binary Arithmetic/Multiply | | Division | Yes | Arithmetic/Binary Arithmetic/Divide | | Blending | Yes | Arithmetic/Binary Arithmetic/Blend | | Logical AND/NAND | Yes | Arithmetic/Logical Operations/AND | | Logical OR/NOR | Yes | Arithmetic/Logical Operations/OR | | Logical XOR/XNOR | Yes | Arithmetic/Logical Operations/XOR | | Invert/Logical NOT | Yes | Arithmetic/Unary Arithmetic/NOT/Invert | | Bitshift Operators | Yes | Arithmetic/Logical Operations/Left/Right Shift | -----------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Thresholding | Yes | Image Analysis/Segmentation/Threshold | | Adaptive Threshold | Yes | Image Analysis/Segmentation/Dynamic Threshold | | Contrast Stretching| Yes | Image Processing/Histograms/Stretch | | Hist. Equalization | Yes | Image Processing/Histograms/Equalize | | Logarithm Operator | Yes | Arithmetic/Unary Operators/Logarithm | | Raise to Power | Yes | Arithmetic/Unary Operators/Exponential | -----------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Scale | Yes | Image Processing/Geometric Manip./Resize | | Rotate | Yes | Image Processing/Geometric Manip./Rotate | | Reflect | Yes | Image Processing/Geometric Manip./Flip | | Translate | Yes | Image Processing/Geometric Manip./Translate | | Affine Transform | Yes | Remote & GIS/Warping... | -----------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Intensity Histogram| Yes | Image Processing/Histograms/Histogram | | Classification | Yes | Image Analysis/Classification... | | Labeling | Yes | Image Analysis/Classification/Labeling | -----------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Dilation | Yes | Image Processing/Morphology/Dilation | | Erosion | Yes | Image Processing/Morphology/Erosion | | Opening | Yes | Image Processing/Morphology/Opening | | Closing | Yes | Image Processing/Morphology/Closing | | Hit/Miss Transform | No | | | Thinning | No | | | Thickening | No | | | Skeletonization | Yes | Image Processing/Morphology/Skeletonization | -----------------------------------------------------------------------------

--------------------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+------------------------------------------------------------| | Mean Filter | Yes | Image Processing/Spatial Filters/2D Conv + | | | | Input Sources/Input Data File/Kernels (avgNxN) | | Median Filter | Yes | Image Processing/Spatial Filters/Median | | Gaussian Smoothing | Yes | Image Processing/Spatial Filters/2D Conv + | | | | Input Sources/Create 2D Image/Gauss Image | | Conservative Smooth| No | | | Crimmins | Yes | Image Processing/Spatial Filters/Speckle Removal | | Frequency Filters | Yes | Image Processing/Frequency Filters... | | Laplacian Filter | Yes | Image Processing/Spatial Filters/2D Conv + | | | | Input Sources/Create 2D Image/Marr Filter | | Unsharp Filter | No | | ---------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+------------------------------------------------------------| | Roberts Cross | Yes | Image Processing/Spatial Filters/Gradient | | Sobel | Yes | Image Processing/Spatial Filters/Sobel | | Canny | Yes | Image Processing/Spatial Filters/DRF Edge Extract | | | | (Actually Difference Recursive Filter which is similar) | | Compass | No | | | Zero Crossing | No | (Not directly anyway, but easy to do) | | Line Detector | No | | ---------------------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Distance Transform | No | | | Fourier Transform | Yes | Image Processing/Transforms/FFT | | Hough Transform | No | | -----------------------------------------------------------------------------

----------------------------------------------------------------------------- | OPERATOR | INC | NOTES | |--------------------+-----+--------------------------------------------------| | Noise Generation | Yes | Input Sources/Create 2D Image/Gauss/Shot Noise | -----------------------------------------------------------------------------