PhotoSqueak 1.0

by Juan Manuel Vuletich
Back to Juan's studio


Download

Imagenes.zip (6.9 Mb) A full package, that includes everything you need to run PhotoSqueak on Windows. Based on Squeak 2.7. Just unzip and run Squeak.exe. If you are not using Windows, replace Squeak.exe with the appropiate Virtual Machine for your platform, and erase all the dlls. If you download this package, you don't need any of the other files.

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).
 
 

Tips

The GUI is a bit strange. Please follow do as follows: Open an ImageViewMorph (New Morph / Image Processing / ImageViewMorph). Create an image. Then you can enter values, or load a file into it. See the meaning of the controls for details.

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.
 

Controls by horizontal row, from top to bottom

Top horizontal slider: controls zoom (warning: slow if no plugin)

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.