Source.zip (31 Kb) Source code for the project,
to file in Squeak 2.7. It includes
the source for DLL generation. In newer Squeak versions, gives an error
because the QuickPrint class does not exist any longer. If this is your
case, modify in
BorderedPopUpChoiceMorph >> fitContents
QuickPrint on: Display box: Display
boundingBox font: self fontToUse
by
DisplayScanner quickPrintOn:
Display box: Display boundingBox font: self fontToUse
OS2Dlls.zip (34 Kb) Image and Signal processing Dlls, compiled for OS/2 (it works without them, but much slower).
WinDlls.zip (47 Kb) Image and Signal processing
Dlls, compiled for Windows (it works without them, but much slower).
Try small images first. A monochorme image of 30 x 30 will be usable even on the slowest machines. Use the zoom slider to magnify small images.
Note that this GUI actually does not include a way to save aprocessed
image. It must be done by a script.
Bottom horizontal slider: Opens spreadsheet view of image (up to 15x15)
<Update Image>: Updates image from spreadsheet view data
<ReZoom>: ReZooms the image based on the Zoom field
<New>: Creates a new image of the specified pixel type, width, height and number of planes (0: monochrome, 3: RGB, others also possible). Float images are better for most algorithms. Int16 are almost useless.
<Load>: Loads a file of the specified type and fileName on the current image.
<Fill>: Fills the current inage with the selected noise distribution, enter the parameters first.
<Calc new>: Select an algoritm to calc a new image, then click. You can find histogram equalization, norm histogram equalization (for color/multiband images), several edge detection techniques and local variance (in a neighborhood of each pixel).
<Calc new>: Silimar to the last, but for algorithms tat take an argument. Select an operation and enter the argument. Then click the button. The argument is a number, except in #contaminateWithSaltAndPepper: that takes an array of three numbers, like #(percentageToContaminate bottomValue topValue). The operations include several edge detection algorithms, a (slow) nonlinear median filter, the extraction of a plane/color in a multiplane/color image, and the creation of a Gaussian Laplacian image (for covolving with another image).
<Calc new>: These operations take another image as an argument. So first get another ImageViewMorph with an image. Click on the gray box, and without releasing the mouse button, drag to the other image and let the button go. An arrow will appear, indicating the image choosen as the parameter. If you move any of the morphs, and the arrow does not point to the parameter anymore, just select the parameter again, in the same way. Here you can find arithmethic operations on images (pixel by pixel), and the most important operation in this package, the Convolution.
<Calc new>: This one evaluates the text in the box as a Smalltalk block, on every pixel of the image.
<Threshold>: Every pixel whose value is greater than [Level] is set to [Top] (if the [Top] value is entered), and every one whose value is lower than [Level] is set to [Bottom] (if the [Bottom) value is entered). It's useful when an image has very little values very far from the mean value, and the stretching done to show the image lacks contrast. It cuts the extremes of the histogram.
<Histogram> <Norm.Hist> <Smooth.Hist> are histograms. Once you open the histogram, open a halo on the ImageHistogramExtendedView, and extend it. Norm histogram takes the norm of each pixel in color/multiband images. Smooth Histogram is used for image classification. Please try small images first.
<Copy>: Opens a new ImageViewMorph with a copy of the image in the current.
<Close>: Closes the view.
In the Histogram view, <Loc.Min> find local minimum in the histogram. Click on the view afterwards, to redraw the morph.