HIPR Applet Running Instructions

The following are instructions on how to run the applets which are part of the HIPR package. These applets are designed to allow the user to try out the operators which are outlined in the worksheets for themselves.

All of these applets can be run using the Applet Viewer from the directory /usr/local/extpapers/papers/HIPRsrc/newjavasrc/

Image Loading

You can experiment with different images using any of the images supplied in HIPR or by a URL. Some of those available in HIPR have the prefixes given here and .gif as the file extension: greyscale (cam1, che1, cln1, fru1, man8, str1, str2, str3, tol1, txt2, wal2, wom1, wom2, urb1, xra1) and range (bae1, ren1) images.

Enter image specifiers either as a full HIPR image filename (eg. cam1.gif) or by a full URL. Only gif and jpg files can be loaded.

Pushing the Load Image button causes the specified image to be loaded.

Applet Running Instructions

The applets can only be used on a machine running Solaris 2.6 or higher. Java 1.1.2 or higher is also required to use the applets. Change directory to /usr/local/extpapers/papers/HIPRsrc/newjavasrc. From there the applets can be run by typing - appletviewer apdilate.htm (to run the dilate operator applet etc.). All of the available operators are runnable in this directory using appletviewer and the appropriate .htm file.

The Applets

Image Arithmetic

Point Operations

Geometric Operations

Image Analysis

Morphology

Digital Filters

Feature Detectors

Image Transforms

Image Synthesis

Other

Known Bugs


Instructions


Image Arithmetic:

Addition

Filename: appixadd.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There is one pull-down menu. It allows you to decide what will be added to the first image, which can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. Addition may produce images with values larger than 255. These values are clipped to 255, but Scaling and Offset values can be entered to allow you to rescale the images yourself before the clipping takes place, according to Output = Scaling*Difference + Offset. Pressing the green Add button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

Subtraction

Filename: appixsub.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There are two pull-down menus. The first allows you to decide what will be subtracted from the first image, which can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. The second pull-down menu, Polarity, allows you to select which image should be subtracted from which image. Subtraction may produce images with values larger than 255 or smaller than 0. These values are clipped to 255 or 0, but Scaling and Offset values can be entered to allow you to rescale the images yourself before the clipping takes place, according to Output = Scaling*Difference + Offset. Pressing the green Subtract button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

Multiplication

Filename: appixmult.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There is one pull-down menu. It allows you to decide what the first image will be multiplied by, which can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. Multiplication may produce images with values larger than 255. These values are clipped to 255, but Scaling and Offset values can be entered to allow you to rescale the images yourself before the clipping takes place, according to Output = Scaling*Difference + Offset. Pressing the green Multiply button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

Division

Filename: appixdiv.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There are two pull-down menus. The first allows you to decide what the first image will be divided by. This can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. The second pull-down menu, Polarity, allows you to select which image should be divided by which image. Division may produce images with values larger than 255. These values are clipped to 255, but Scaling and Offset values can be entered to allow you to rescale the images yourself before the clipping takes place, according to Output = Scaling*Difference + Offset. Pressing the green Divide button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

Blending

Filename: apblend.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There is one pull-down menu. It allows you to decide what the first image will be blended with, which can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. In the box labelled Blending factor a number between 0 and 1 should be entered to specify what proportion of each image is used in the output image. A value of 0.5 will take equally from each image, whereas a value of 0.8 will be biased towards the first image Multiplication may produce images with values larger than 255. These values are clipped to 255, but Scaling and Offset values can be entered to allow you to rescale the images yourself before the clipping takes place, according to Output = Scaling*Difference + Offset. Pressing the green Multiply button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

AND/NAND

Filename: apand.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There are two pull-down menus. The first allows you to decide what the first image will be ANDed with. This can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. The second pull-down menu, Operator, allows you to select whether or not the operator applied is the AND or the NAND operator. ANDing may produce images which are difficult to see. Scaling and Offset values can be entered to allow you to rescale the images yourself, according to Output = Scaling*Difference + Offset. Pressing the green (N)AND button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

OR/NOR

Filename: apor.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There are two pull-down menus. The first allows you to decide what the first image will be ORed with. This can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. The second pull-down menu, Operator, allows you to select whether or not the operator applied is the OR or the NOR operator. ORing may produce images which are difficult to see. Scaling and Offset values can be entered to allow you to rescale the images yourself, according to Output = Scaling*Difference + Offset. Pressing the green (N)OR button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

XOR/XNOR

Filename: apxor.htm

The two input images are displayed in the Input 1 and Input 2 display areas below the control buttons, along with the image sizes.

There are two pull-down menus. The first allows you to decide what the first image will be XORed with. This can be either the second image loaded or a constant value. If a constant value is selected, then you have to enter that constant into the box to the right of the Constant value string. The second pull-down menu, Operator, allows you to select whether or not the operator applied is the XOR or the XNOR operator. XORing may produce images which are difficult to see. Scaling and Offset values can be entered to allow you to rescale the images yourself, according to Output = Scaling*Difference + Offset. Pressing the green X(N)OR button starts the operator. The output is displayed in the output window which is positioned left of the two input windows.

NOT

Filename: apinvert.htm

The input image is displayed in the Input display areas below the control buttons, along with the image size.

Pressing the green Invert button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Bitshifting

Filename: apbitshift.htm

The input image is displayed in the Input display areas below the control buttons, along with the image size.

There is one pull down menu. This allows you to choose which direction the pixels in the image are shifted. In the box labelled Shift value an integer can be entered which allows you to determine how far the bits are shifted in the image. Bitshifting may produce images which are difficult to see. Scaling and Offset values can be entered to allow you to rescale the images yourself, according to Output = Scaling*Difference + Offset. Pressing the green BitShift button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Point Operations:

Thresholding

Filename: apthreshld.htm

The input image is displayed in the Input display area below the control buttons, along with the image size. Next to this is the histogram which has been generated from the input image. On the histogram image are two lines, one red and one green. The green line corresponds to the current lower threshold value and the red line corresponds to the current upper threshold value.

There is one pull down menu. This allows you to choose whether or not the output of the thresholding is inverted or not. Above this menu are two slide bars which are used to change the values of the upper and lower thresholds. Sliding these along will change the position of the red and green lines in the histogram window, thus allowing you to see what areas of the histogram are being selected. Pressing the green Threshold button starts the operator. The output is displayed in the output window which is positioned left of the input windows.

Adaptive Thresholding

Filename: apadapthresh.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

There is one pull down menu. It allows you to choose which of the three functions outlined in the HIPR page is used to calculate the local threshold value. Above this menu is a textbox into which can be entered an integer which specifies the size of the neighbourhood which will be looked at when working out the local threshold value. For instance the default value of 7 will consider a 7x7 window centred on the current pixel. Below the pull down menu is another box called Constant value into which an integer value is entered. This is the value that is subtracted from the local threshold value before the threshold is applied to the local pixel. Pressing the green Threshold button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Contrast Stretching

Filename: apcontrast.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

There is one pull down menu. It allows you to choose which of the three functions outlined in the HIPR page is used to stretch the image. The two boxes below this allow you to specify upper and lower bounds on the contrast stretching. These are bounds which the intensity values of the stretched image will lie between. The next two boxes are used only when the percentile method is selected, and specify upper and lower percentage boundaries of the image intensity values. These values are floating point numbers between 0 and 1. The final box is used when the cutoff method is selected and is used to specify a percentage value (float between 0 and 1) of the maximum intensity which is used to calculate the cutoff point in the image histogram. Pressing the green Stretch button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Histogram Equalization

Filename: apequalize.htm

The input image is displayed in the Input display area below the control buttons, along with the image size. Next to this is the histogram of the input image.

Pressing the green Equalize button starts the operator. The output is displayed in the output window which is positioned left of the input window. The histogram window is updated to now show the histogram of the equalized output image.

Logarithm Operator

Filename: appixlog.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The only input field of this operator is the scale factor field. Into here is entered a number which is used to scale the output image. This is necessary as the output image can be difficult to see. Pressing the green Apply Log button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Exponential Operator

Filename: appixexp.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The only input field of this operator is the gamma value which determines how bright the output image appears. The value entered here is a floating point number typically in the range 0.0 to 1.0. however larger values than this can be entered. Pressing the green Exponentiate button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Geometric Operations:

Scale

Filename: apscale.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

There are three pull down menus from which to select. The first of these, Method, selects what method is used to determine how to calculate the output image when the scaling takes place. The third menu, Scale, determines what size of scaling is taking place. If you are scaling down then a value of two would mean that the width and height would each be half as big. When scaling up takes place, the scale value determines how big the area which is being scaled up is. The middle of the three boxes, Direction, specifies whether you are scaling the image up or down. If the selection in this box is expand, then a box should appear in the input window which shows the area you wish to expand. This box can be moved around in the image by clicking the mouse in the input window. Where the mouse is clicked will determine where the top left of the box is. The size of the box is determined by the size menu explained above. Pressing the green Scale button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Rotate

Filename: aprotate.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The only input box is the rotation angle box. Into this is entered an integer which specifies how much the image is to be rotated by. All rotations happen as if the image was a compass point pointing directly North. So if a rotation angle of 90 is entered, then the image will be rotated 90 degrees to the right. Pressing the green Rotate button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Reflect

Filename: apreflect.htm

The input image is displayed in the Input display area below the control buttons, along with the image size. On the input image is drawn a red line. This line corresponds to the line along which the image will be reflected.

The only input to this operator is the slide bar which is used to change the angle of the line of reflection by sliding it back and forth. As well as being able to change the angle of the line of rotation, the position of the line can also be altered. This is done by clicking in the input window. The point at which the user clicks defines a point through which the line will pass. Pressing the green Reflect button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Translate

Filename: aptrans.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The pull down menu labelled Wrap/No Wrap allows you to toggle whether or not the image is wrapped around once it has been translated. In order to define the translation which the image must undergo, a line is drawn in the input window whose direction is the direction the image is to be translated and whose length is how far the image is to be translated. To define the line click and hold on the input window and drag the mouse. This draws a line from the clicked point to the current mouse point. When the mouse button is released the destination point of the line is defined and it is drawn on the screen. Pressing the green Translate button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Affine Transformation

Filename: apaffine.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input to the operator is two arrays A and B. These are the two arrays defined in the HIPR page corresponding to this operator. Entering values in the textfields will change the values in the arrays when they are used in the transformation. Pressing the green Transform button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Image Analysis:

Intensity Histogram

Filename: aphistgram.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Pressing the green Histogram button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Classification

At this time no operator exists for this function.

Connected Components Labelling

Filename: aplabel.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

There are two input fields which are used to apply a scale factor and offset to the output image. This is necessary as the greyscale values output can be difficult to see. The formula used to calculate the output is Output = Scaling*Difference + Offset. The output image will label each of the components with a different greyscale value, and the number of different components is displayed in a pop-up window. Pressing the green Labelx button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Morphology:

Dilation

Filename: apdilate.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Each element in the 3x3 kernel has two possible states on (red) and off (grey). For each background pixel, if the kernel matches (the kernel is centred on the pixel, every 'on' element matches a foreground pixel and every 'off' element matches a background pixel) then that background pixel is flipped to a foreground pixel. The output is displayed to the right of the input image.

Erosion

Filename: aperode.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Each element in the 3x3 kernel has two possible states, on (red) and off (grey). For each foreground pixel, if the kernel matches (the kernel is centred on the pixel, every 'on' element matches a foreground pixel and every 'off' element matches a background pixel) then that foreground pixel is flipped to a background pixel. The output is displayed to the right of the input image.

Opening

Filename: apopen.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input image is simply eroded and then dilated using the same kernel. Several iterations will erode for several iterations and then dilate for the same number of iterations. The output is displayed to the right of the input image.

Closing

Filename: apclose.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input image is simply dilated and then eroded using the same kernel. Several iterations will dilate for several iterations and then erode for the same number of iterations. The output is displayed to the right of the input image.

Hit and Miss Transform

Filename: aphitmiss.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Each element in the 3x3 kernel has three possible states, foreground, background and anything. The kernel is centred on each pixel in the image in turn and if every foreground element in the kernel matches with a foreground pixel and every background element in the kernel matches with a background pixel (anything elements automatically match with any pixel) then that pixel becomes a foreground pixel and all other pixels become background pixels. The output is displayed to the right of the input image.

Thinning

Filename: apthin.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input image is first 'HitandMiss'ed using the kernel. The result of the HitandMiss is then logically subtracted from the original image. The output is displayed to the right of the input image.

Thickening

Filename: apthicken.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input image is first 'HitandMiss'ed using the kernel. The result of the HitandMiss is then logically added to the original image. The output is displayed to the right of the input image.

Skeletonization

Filename: apskeleton.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The input image is thinned using 8 different kernels in turn. [[0,0,0],[X,1,X],[1,1,1]] then [[X,0,0],[1,1,0],[X,1,X]] then the 6 90degree rotations of these two kernels. This is then repeated until no more change occurs. The resulting image is the skeleton of the original image. The output is displayed to the right of the input image.

Medial Axis Transform

Filename: apmat.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The distance transform of the input image is calculated. The skeleton of the distance transform is then calculated, retaining the grey-level pixel values to produce the MAT image. The output is displayed to the right of the input image.

Digital Filters:

Mean Filter

Filename: apmeansmooth.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

For each pixel the mean of the 9 neighbourhood pixel values (that match the 'on' elements in the kernel, 'off' values are ignored) is found and the pixel is set to that value. The output is displayed to the right of the input image.

Median Filter

Filename: apmediansmooth.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

For each pixel the median of the 9 neighbourhood pixel values (that match the 'on' elements in the kernel, 'off' values are ignored) is found and the pixel is set to that value. The output is displayed to the right of the input image.

Gaussian Smoothing

Filename: apgaussiansmooth.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The size of the Gaussian kernel (containing discrete values) can be set by selecting one of the radio buttons. The value of theta can be selected by adjusting the value in the text box. The input image is then convolved with the automatically generated kernel to produce the output image. The output is displayed to the right of the input image.

Conservative Smoothing

Filename: apconsmooth.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

For each pixel the maximum and minimum neighbours are found. If the pixel value is greater than it's maximum neighbour then it's value is reduced to that of the neighbouring maximum. If it is less than it's minimum neighbour then it is increased to this minimum. In this way unusually high and low pixels values are removed. The output is displayed to the right of the input image.

Crimmins Speckle Removal

At this time no operator exists for this function

Frequency Filters

Filename: apfft.htm

See Fourier Transform

Laplacian

Filename: aplaplacian.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The Laplacian kernel can be chosen from a selection of three, each producing slightly different outputs due to the different kernel values. The input image is convolved with this kernel to produce the output image. The output is displayed to the right of the input image.

Laplacian of Gaussian

Filename: aplog.htm

The Laplacian of Gaussian kernel is calculated using the kernel size and the theta value. The input image is then convolved with this kernel to produce the output image. The output is displayed to the right of the input image.

Unsharp Filter

Filename: apunsharp.htm

The input image is initially smoothed using the mean smoothing operator. This smoothed image is then subtracted from the original image to produce an edge image. Part of this edge image (determined by the k parameter) is then added to the original image to produce the sharpened output image. The output is displayed to the right of the input image.

Feature Detectors:

Roberts Cross Edge Detector

Filename: aproberts.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Into the scale box should be entered a floating point number greater than 0. This is used to scale the output of the edge detection as it can sometimes be difficult to see properly. Pressing the green Roberts Cross button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Sobel Edge Detector

Filename: apsobel.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

Into the scale box should be entered a floating point number greater than 0. This is used to scale the output of the edge detection as it can sometimes be difficult to see properly. Pressing the green Sobel button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Canny Edge Detector

Filename: apcanny.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The pull down menu allows you to select what size of kernel will be used in the Gaussian Smoothing phase of the operator. The standard deviation of the Gaussian Smoothing can also be altered using the box below this menu. The next two boxes, upper and lower threshold, are used to define threshold values which will be used in the tracking stage of the operator. The high threshold defines the initial value which must be passed in order to begin tracking and the low threshold is the value which must be passed in order to continue the tracking. The Canny may produce images with values larger than 255 or smaller than 0. These values are clipped to 255 or 0, but Scaling and Offset values can be entered to allow you to rescale the images yourself before they are clipped, according to Output = Scaling*Difference + Offset. Pressing the green Canny button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Compass Edge Detector

Filename: apcompass.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The first pull down menu allows you to decide which of the kernel sets to use to detect the edges with. All the sets of kernels are defined in the HIPR worksheet for this operator. The second pull down menu allows you to define whether or not the label image should should be labelled with different colours, or different greyscale values. The Compass may produce images with values larger than 255 or smaller than 0. These values are clipped to 255 or 0, but Scaling and Offset values can be entered to allow you to rescale the images yourself before they are clipped, according to Output = Scaling*Difference + Offset. Pressing the green Apply Compass button starts the operator. The output is displayed in the two output windows which are positioned left of the input window. The first window shows the label image which has been generated, whilst the second window shows the edge image with image intensity signally edge strength.

Zero Crossing Detector

Filename: apzerocross.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The first pull down menu allows you to decide what size of kernel to use in the Gaussian Smoothing phase, and the standard deviation of this Smoothing can be entered in the box below the pull down menu. The next pull down menu allows you to decide whether to apply gradient limited crossings or not to the image. If this is selected a value is input in the textbox below which specifies the gradient that must exist at a possible zerocrossing point in order for it to be classified as a zerocrossing. Pressing the green Zero Crossing button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Line Detector

Filename: aplinedet.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The first four boxes are check boxes which can be either selected or de-selected to determine whether or not the type of line specified is looked four. Selecting each type of line will apply a different kernel, and the outputs from these are combined to make a single picture with all the selected lines. The pull down menu below these allow you to select if a threshold should be applied so that only significant lines are found. This is entered in the box below the menu. On the output window the lighter the value the stronger the line, unless the threshold is applied in which case all lines are white and the background black. Pressing the green Detect Lines button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Image Transforms:

Distance Transform

Filename: apdistance.htm

The input image is displayed in the Input display area below the control buttons, along with the image size. The image is repeatedly thinned (all foreground edge pixels are removed in every iteration). Each iteration, the thinned pixels are stored and a grey level value is assigned to them (0 for the first iteration up to 255 for the final pixels remaining). The output image is then coloured with these values. The output is displayed to the right of the input image.

Fourier Transform

Filename: apfft.htm

The input image is displayed in the Input display area below the control buttons, along with the image size. The fourier transform can be applied by clicking on the Apply Fourier Transform button. Various operations can then be applied to the output of the fourier transform (for example a frequency filter, specifying high/low pass and radius). The inverse fourier transform can then be applied to view the effects in the spatial domain. The output is displayed to the right of the input image.

Hough Transform

Filename: aphough.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The textfield labelled threshold is used to enter a threshold (float between 0 and 1) which determines which lines are strong enough to constitute real lines in the image. Below this is a pull down menu which allows you to select whether or not the input image should be overlaid on the line image. This is sometimes useful as a check that the lines which have been found do in fact exist in the image. Pressing the green Apply Hough button starts the operator. The outputs are displayed in the output windows which are positioned left of the input window. The first output is a picture of the hough space which the line voting was made in. The x axis corresponds to line angle, and the y axis is the radius from the centre. The lighter the image is, the more votes were received at that point. The second output image is the picture of the lines which passed the threshold. These lines have been drawn in blue so that when they are overlaid on the original image they are easy to distinguish.

Image Synthesis:

Noise Generation

Filename: aprnoise.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The top pull down menu allows you to select what sort of noise should be added to the input image. This can be either of type Gaussian or of type Shot. If Gaussian is selected, the Gaussian side of the interface becomes active and a standard deviation of the Gaussian noise can be entered. If Shot is selected then The Shot side of the interface becomes active. When this happens you can then go on to select either Partial or Full shot noise. Partial shot noise is where a new value is generated to replace a pixel, and Full shot noise is where either 0 or 255 is used to replace a pixel. In either case each pixel in the image is changed with a probability equal to that entered in the box below this pull down menu. Pressing the green Apply Noise button starts the operator. The output is displayed in the output window which is positioned left of the input window.

Other:

Convolution

Filename: apconvolve.htm

The input image is displayed in the Input display area below the control buttons, along with the image size.

The kernel can be varied in size between 1 to 7 elements by 1 to 7 elements by clicking on the numbered buttons along the top and down the left of the kernel display. The value for each kernel element can then be set appropriately. The input image is then convolved with the kernel to produce the output image. NOTE the output image will be originalWidth-kernelWidth+1 wide and originalHeight-kernelHeight+1 high. The output is displayed to the right of the input image.

Known Bugs:

Stop Button

At the present time the stop button on the interface is unimplemented. This is due to problems in having the operator running in a separate thread to the interface, which would allow the operator to be stopped when in progress. The consequence of this is that clicking on the stop button will do nothing, and there is no way of stopping the operator from running in mid operation unless the Appletviewer it is running in is closed down. For this reason it is advised not to use large images on the more complex operators as once you have started them there will be no way to stop them if they take a long time to run.

Memory Leaks

At the time of writing there appeared to be some memory leaks in the applets which caused the applets to run out of memory under certain circumstances. The exact cause of these is unknown and once the system has run out of memory it cannot continue to have the operator run. If this happens an error message will appear in the window from which the Appletviewer was run stating a java.lang.OutOfMemoryError. If this happens the AppletViewer needs to be shutdown and re-run. This will reallocate the memory and allow the operator to be run again. Again as with the Stop Button problem it is best not to run large images through the more complex operators to avoid them running out of memory.

Interface Freezing

This problem is one caused by the lack of functionality in the Stop Button. When an operator is run, the interface from which it was run freezes until such time as the operator has finished running. This is due to the fact that they are not running in different threads. The interface will still register any user actions with the interface (e.g a button click), however any action resulting from this interaction will not be executed until after the operator has finished running.

Component Positioning

Occasionally when the Appletviewer is loaded up, the components which are contained in it will be drawn as if the Appletviewer is bigger than it actually is. This problem can be easily solved by resizing the window in which the AppletViewer is running. This action will reposition the components in the interface to the size that they were intended to be.

Image URL's

At the moment when the operators are run in the Appletviewer the images which are used cannot be loaded by specifying a URL. This means that the only images that can be run at this time are those which are contained in HIPR. This should not cause too many problems as the number of images in HIPR should be sufficient to gain an understanding of any of the operators.


Last modified: Thu Aug 19 10:14:48 BST

This page was written by:

Timothy Sharman
and
Simon Horne