|
|
 |
 |
 |
|
Advanced image viewer
|
|
|
|
Image analysis tools
|
|
|
|
Default tool. It provides access to image processing plugins and the image information panel. It contains the context menu of TZImageViewer component consisting of a list of images and image sequences to switch between them. The context menu also contains four commands to control an image sequence. By default all graphics layers (external or belonging to plugins) are attached to this tool.
|

|
|

|
|
This tool allows the viewing and analysis a histogram of the image. For custom 2D-data all pixel values are mapped into the byte range. The histogram is created in the region selected by the user. For selection, the graphic layer is used. By default, the region covers a whole image.
To exclude a complex region from histogram computation, the layer is used. It allows the picking of a transparent color from the image, which is used as a mask where a histogram is not computed.
The raster layer is used for thresholding the image inside the region. When the layer is activated the thresholding panel appears. In the panel the user can set low and high thresholds for each channel. The threshold values are displayed on the histogram graph as small circles. All pixel values not satisfying the condition low < value < high have the color black. Others can be white or can be taken from the original image, depending on the Binary mask option. The Otsu threshold option performs an automatic optimal thresholding by the Otsu method.
When the cursor is moving inside the region the corresponding pixel values are marked on the histogram graph by vertical lines. When the cursor is moving on the histogram graph the corresponding histogram values are displayed in the status bar.
|

|
|

|
|
This tool allows the viewing and analysis of horizontal and vertical projections of the image. A projection is a sum of pixel values along image rows (or columns). Projections are widely used in computer vision algorithms because they give an integral description of images, which can help to detect simple objects. Projections are created in the region selected by using the graphics layer.
To exclude a complex region from the computation of projections, the layer is used. It allows the picking of a transparent color from the image, which is used as a mask where projections are not computed.
For non-rectangular regions the Normalize option can be used. This option divides the projection into number of pixels in each row (or column).
When the cursor is moving inside the region the coordinates of the cursor are marked on the projection graphs by lines. This helps to analyze the projections. When the cursor is moving on the projection graphs, the corresponding values of projections are displayed in the status bar.
|

|
|
|
|
The Aperture is a tool for analyzing numerical values of the pixels under the cursor. The aperture window follows the cursor and shows pixels values. The values are displayed only if the zoom level of the aperture window is high enough.
|

|
|
|
|
The Profile tool helps to analyze a pixel values along an arbitrary curve. For drawing a curve, the graphics layer is used. Any vector object except a point can be used for profile analysis.
When the cursor is moving on the curve the cursor position is displayed on the profile graph as a vertical line. When the cursor is moving on the profile graph, the corresponding pixel values are displayed in the status bar.
|

|
|
|
|
The XY-Profile is similar to the Projection tool. The difference is that the XY-Profile calculates the projections of pixel values in narrow rectangles with a width of up to 1 pixel. The center of the rectangle is defined by the cursor position. The sizes of the rectangles are defined by size of the visual image area. The width of the rectangles can be changed using the ‘Width’ trackbar.
|

|
|
|
|
The Surface tool visualizes 2D-data as a 3D-surface. For the visualization the TZ3DViewer component is used. All options of rotation of 3D-view and distance/angle changing are available. The user can select any region on the image and only that part of the data will be visualized. The following modes are implemented: uniform surface (the color of the surface is red, green, blue and (or) gray), wireframe model, image texture (the color of each surface element is taken from the original image).
To exclude a complex region from surface visualization the layer is used. It allows the picking of a transparent color from the image, which is used as a mask where a surface is not visualized.
When the cursor is moving inside the region the corresponding surface element is highlighted.
|

|
|
|
|
The LUT tool offers a few operations with the Look-Up-Table (LUT). Using the LUT the image pixel values are changed before visualization in the following way: New = LUT[Old], where Old is an original pixel value, New is a new pixel value after applying the transformation. For custom 2D-data all pixel values are first mapped into the byte range.
The following LUT-based transformations are implemented:
Negative is a simple transformation LUT[x] = 255 - x
Custom is a user-defined transformation. It can be set by using the vector graphics layer in the LUT graph.
Pseudocolor is a predefined transformation which can turn a grayscale image into a pseudo-color image
Linear is the following transformation: LUT[x] = ((x-min)/(max-min)* 255, where min and max are minimum and maximum pixel values in a user-defined region
Equalize is the following transformation: LUT[x] = Hist[x]*255, where Hist is a normalized to [0,1] range cumulative histogram of the image.
To set the region for the Linear and Equalize transformations the graphics layer is used. By default, the region equals the whole image. To exclude a complex region from the computation of Linear and Equalize transformations, the layer is used. It allows the picking of a transparent color from the image, which is used as a mask of a region which does not participate in LUT transformation. |

|
|
|
|
A scattergram is a 2D analogy to a histogram. It shows a joint distribution of pixel pairs. This tool shows the scattergrams of different pairs of image channels. For an RGB-image three scattergrams can be created: [R,G], [R,B], [G,B]. The scattergram is shown as a grayscale image, where each pixel (x,y) determines how many times the pair [R=x, G=y] (for [R,G] scattergram) appears on the image.
To set the region where the scattergrams are computed, the graphics layer is used. By default, the region equals the whole image. To exclude a complex region from scattergram computation the layer is used. It allows the picking of a transparent color from the image, which is used as a mask where scattergrams are not computed.
When the cursor is moving in the image region, three markers on scattergrams show the positions of pixel values under the cursor. When the cursor is moving on a scattergram, the corresponding scattergram value is displayed in the status bar.
The Equalize option equalizes the scattergrams to make the distributions more clear.
|

|
|
|
|
The theory behind the Hough Transform can be found on many websites relating to computer vision. One example is CV-Online. In few words, the Hough Transform is able to detect simple shapes in images, such as straight lines, circles, ellipses ... Our implementation is restricted to just straight lines. The equation of a straight line
r = x cos(theta) + y sin(theta)
is considered from another point of view: for each point (x,y) a corresponding curve r(theta) is accumulated in a special array (Accumulator). Significant peaks (r0,theta0) in the accumulator show straight lines r0 = x cos(theta0) + y sin(theta0) in the original image.
In our implementation the Hough Transform is performed for each channel of the image.
The tool includes three panels: original image, accumulator and the panel for options setting. When the mouse is moving over the accumulator the corresponding straight line is indicated on the original image.
To set the region where the Hough Transform is to be computed, the graphics layer is used. By default the region covers the whole image. The layer is used to exclude a complex region from computation. It allows the picking of a transparent color from the image, which is used as a mask where the transform is not computed.
Other options are as follows:
Algorithm group allows the user to choose between two modifications of the Hough Transform. In the Standard method, original pixels are used. In the Gradient - based method, only pixels with a significant brightness gradient (edges) are used.
Thresholds group sets low and high thresholds for each image channel. Only pixels with values (or gradient magnitude) between low and high thresholds participate in the transform.
Accumulator group sets sampling of the accumulator. Angular resolution defines the sampling of the theta value; Distance resolution defines the sampling of the r value.
|

|
|
|
|
This tool allows the user to explore the Fourier Transform of the image region. We implemented the traditional FFT algorithm [Radix-2, Cooley-Tukey, 1965] for complex images; the only requirement is that the image sizes must be a power of 2. When the graphics layer is activated, the image region can be moved and resized. The right window automatically shows the FFT of the image region.
Using the graphics layer you can see what happens to the image if some of its spatial frequencies are removed. Using a combination of polygons, rectangles, circles and ellipses the user can create a complex region with holes. Only frequencies INSIDE this region are used for the inverse FFT. The left window shows the result of the inverse FFT. The screenshot shows an example of `ideal low-pass filtering`.
Other options are as follows:
Logarithmic LUT box transforms the FFT image according to a logarithmic look up table, which makes it more convenient to observe the FFT result.
If the original image has an even number of channels, it can be treated as a complex image (when the appropriate box is checked). In this case channels with numbers 0,2,4... will be considered as real parts; channels with numbers 1,3,5... will be considered as imaginary parts. Using the Show options you can visualize only real or imaginary parts of the FFT.
If the original image has an odd number of channels or the Treat image as a complex one box is switched off, then each channel of the image is considered as a real one. Imaginary channels are set to 0 internally.
|

|
|
|
|
This tool performs connectivity analysis (connected component labeling) and allows the user to explore image regions. Component labeling algorithm joins neighbouring pixels into connected regions which are the shapes in the image. It is better to work with this tool after image preprocessing (binarization, quantization, segmentation or classification), because original (noisy) images have many one-pixel distinct regions.
All pixels in a connected component share similar color (controlled by the Color tolerance parameter) and are connected with each other by any of two ways controlled by the Connectivity parameter:
4 neighbours - for each (x,y) pixel the set N4={(x-1,y),(x,y-1),(x+1,y), (x,y+1)} is considered
8 neighbours - for each (x,y) pixel the set N8=N4 U {(x-1,y-1), (x+1,y-1),(x+1,y+1), (x-1,y+1)} is considered
Information about each connected component is available in the table, containing the number of the region, its area (in pixels) and bounding rectangle (Left, Top, Right, Bottom columns). Each region can be selected with the mouse and displayed in the image.
When the graphics layer is active, a connected region under the mouse is displayed automatically.
The regions can be filtered by their area (Filter regions parameters). Only regions with area between Min area and Max area are visualized.
The connectivity analysis is performed only in the image region specified by the graphics layer. Transparent pixels (specified by the layer) do not participate in connectivity analysis. |

|
|
Toolbar
The toolbar contains the following command buttons:
|
|

|
Turn on/off image analysis tools. When this button is down, all tabs containing image analysis tools are shown. When the button is up, only the ‘Image’ tab is visible.
|
|

|
Show/hide the image information panel. In this panel the user can check different image attributes (sizes, type, minimum and maximum values, channel mapping). For custom image types one can change a channel mapping.
|
|

|
Show/hide the plugin panel. In this panel the user can select any image processing procedure to process a current image.
|
|

|
Fit to window. The zoom factor is computed automatically to provide an overview of the image in the current window.
|
|

|
Actual view. The image is displayed without any zoom.
|
|

|
Zoom in/out modes. When one of these buttons is down, the corresponding zoom mode is turned on. After clicking with the mouse on any point on the image, the image will be zoomed and that point will be centered in the window. These modes can also be turned on momentarily by pressing the CTRL (or ALT) key.
|
|

|
Turn on/off move mode. When this mode is on, clicking on any point on the image will center that point in the window. This mode can also be turned on momentarily by pressing the SHIFT key.
|
|

|
Turn on/off external graphics layers in image analysis windows. Some image analysis tools (histogram, projection, profile ...) have their own graphics layers. By default, all external layers are attached to the default image analysis tool (‘Image’ tab). This button serves to make them available in other image analysis tools.
|
|

|
Turn on/off corresponding color channel.
|
|

|
This button together with the previous buttons displays any color channel in the grayscale palette.
|
|

|
Turn on/off gray channel. For a color image the gray channel is computed as (R+G+B)/3. If some color channels are turned off, the gray channel will be displayed instead of them.
|
|

|
Control of image sequence. The meaning of these buttons are as follows: play on/off, first image, next image, previous image. These commands are also supported in the context menu.
|
|
Status bar
|
|
The status bar contains the following information:
- current coordinates of the cursor
- current zoom level
- pixel values under cursor
- specific information for current image analysis tool.
|
|
 |
 |
|
© Copyright PixeLook Development Group, 2002-2003. All rights reserved
Delphi is registered trademark of Borland Software Corporation. Intel and Pentium are registered trademark of Intel Corporation. PhotoShop is a trademark of Adobe Systems Inc. All other trademarks are the property of their respective owners
|
|
|
|