Digital imaging/Image analysis
From LabAutopedia
Image analysis is the extraction of meaningful information from images; mainly from digital images by means of digital image processing techniques. The classical problem in computer vision, image processing and machine vision is that of determining whether or not the image data contains some specific object, feature, or activity. This task can normally be solved robustly and without effort by a human, but is still not satisfactorily solved in computer vision for the general case: arbitrary objects in arbitrary situations.
Contents |
Pre-processing
The aim of pre-processing is an improvement of the image data that suppresses unwanted distortions or enhances some image features important for further processing. Examples of image pre-processing:
Re-sampling
Image resampling is used to increase or decrease the size and/or resolution of a bitmap-based image. An image is upsampled to increase the resolution by adding new pixels. Sophisticated scaling algorithms can be used to make "best estimates" of the data that should be contained in a newly added pixel, based on the data in surrounding pixels, but ultimately this only adds hypothetical detail to the image, not real detail. An image is downsampled to decrease the resolution by throwing out pixels. Resampling an image usually results in a loss of image quality because pixels must either be interpolated or thown out. The exception is when the resolution of an image is changed without modifying the pixel dimensions. For example, an image with pixel dimensions of 1200 by 1600 can be defined as having a size of 4 x 5.3 inches at 300 dpi or at 8 x 10.6 inches 150 dpi. Reducing the resolution while increasing the image dimensions does not result in image destruction, but the image will look more grainy or pixelated to the human eye.
Noise reduction
Reducing image noise is done in order to assure that sensor noise does not introduce false information. Images taken with digital cameras will pick up noise from a variety of sources. Many further uses of these images require that the noise will be (partially) removed. Noise may be removed by averaging successive versions of images, providing that there is no movement in the image or that the multiple images were captured as a speed much greater than any potential movement. Noise may also be removed via various software techniquies, which can be categorized as linear or non-linear. Linear filters apply an averaging algorithm across the range of pixels included in a filter mask. This type of filter is often called a "low pass filter". Smoothing filters tend to blur an image, because pixel intensity values that are significantly higher or lower than the surrounding neighborhood would "smear" across the area. Because of this blurring, linear filters are seldom used in practice for noise reduction; they are, however, often used as the basis for nonlinear noise reduction filters. Nonlinear filters locate and remove data that is recognised as noise. The algorithm is 'nonlinear' because it looks at each data point and decides if that data is noise or valid signal. If the point is noise, it is simply removed and replaced by an estimate based on surrounding data points, and parts of the data that are not considered noise are not modified at all. Linear filters, such as those used in bandpass, highpass, and lowpass, lack such a decision capability and therefore modify all data.
Normalization
This may also be referred to as "contrast enhancement" or "dynamic range expansion". The purpose of normalization is usually to bring the image into a range that is more familiar or normal to the senses, and to assure that relevant information can be detected. hence the term normalization. Often, the motivation is to achieve consistency in dynamic range for a set of data, signals, or images to avoid mental distraction or fatigue. For example, a newspaper will strive to make all of the images in an issue share a similar range of grayscale. Normalization is a linear process. If the intensity range of the image is 50 to 180 and the desired range is 0 to 255 the process entails subtracting 50 from each of pixel intensity, making the range 0 to 130. Then each pixel intensity is multiplied by 255/130, making the range 0 to 255. Auto-normalization in image processing software typically normalizes to the full dynamic range of the number system specified in the image file format.
Sharpening
A techniquie for increasing the apparent sharpness of digital photographic images. From a signal-processing standpoint, sharpening generally utilizes a linear or nonlinear filter that amplifies high-frequency components. Digital sharpening is a flexible and powerful way to increase sharpness, especially in scanned images. However, it is easy to create unwanted and conspicuous edge effects. On the other hand these effects can be used creatively.
Main processing
Cameras are not equivalent to human optics and while people can rely on inference systems and assumptions, computing devices must 'see' by examining individual pixels of images, processing them and attempting to develop conclusions with the assistance of knowledge bases and features such as pattern recognition engines. Although some machine vision algorithms have been developed to mimic human visual perception, a number of unique processing methods have been developed to process images and identify relevant image features in an effective and consistent manner,[1][2] such as the following:
- Pixel counting: counts the number of light or dark pixels
- Thresholding: converts an image with gray tones to simply black and white
- Segmentation: used to locate and/or count parts
- Blob discovery & manipulation: inspecting an image for discrete blobs of connected pixels (e.g. a black hole in a grey object) as image landmarks. These blobs frequently represent optical targets for machining, robotic capture, or manufacturing failure.
- Recognition-by-components: extracting geons from visual input
- Robust pattern recognition: location of an object that may be rotated, partially hidden by another object, or varying in size
- Barcode reading: decoding of 1D and 2D codes designed to be read or scanned by machines
- Optical character recognition: automated reading of text such as serial numbers
- Edge detection: finding object edges
Pixel counting
Pixel counting is the simple process of counting the number of dark or light pixels in an image. This technique is used for simple pass/fail measurements, e.g. to determine if an expected object has entered the camera field of view. If not, the pixel count should be consistent with the expected background image. If yes, the change in pixel count should be consistent with the expected count for the object, within a certain standard deviation. Cameras are available that perform the entire process, rendering a simple yes or no, high or low output signal. The sensor captures a grayscale image of a specified area, converts the image to black-and-white pixels, and compares the black or white pixel count with user-programmed upper and lower threshold values to render a pass or fail judgment of the target.
Segmentation
In computer vision, segmentation refers to the process of partitioning a digital image into multiple regions (sets of pixels). The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze. Image segmentation is typically used to locate objects and boundaries (lines, curves, etc.) in images. Several general-purpose algorithms and techniques have been developed for image segmentation. Since there is no general solution to the image segmentation problem, these techniques often have to be combined with domain knowledge in order to effectively solve an image segmentation problem for a problem domain. These techniquies include: [3]
Thresholding
Thresholding is the operation of converting a multilevel image into a binary image, the simplest form of segmentation, to separate the foreground object(s) from the image background. In a binary image, each pixel value is represented by a single binary digit. Global Thresholding, is a point-based operation that assigns the value of 0 or 1 to each pixel of a multilevel (grayscale) image based on a comparison with some pre-set global threshold value. Global thresholding is attractive because it is simple and is sufficient in many cases. However, when the image is unevenly illuminated, local thresholding may be necessary. Local thresholding, also called adaptive or dynamic thresholding, uses a different threshold for different regions in the image. For color or multi-spectral images, it may be possible to set different thresholds for each color channel.
Thresholding is an attractive early processing step because it leads to significant reduction in data storage and results in binary images that are simpler to analyze. The approach works best with images consisting of a single object or several separated objects of distinctly different pixel intensity within the background.[4]
Edge detection
Edge detection is a form of segmentation based on identifying points in a digital image at which the image brightness changes sharply (discontinuities). In typical images, edges characterize object boundaries and are therefore useful for segmentation, registration, and identification of objects in a scene. Edge detecting an image significantly reduces the amount of data and filters out useless information, while preserving the important structural properties in an image. There are many ways to perform edge detection. However, the majority of different methods may be grouped into two categories, gradient and Laplacian. The gradient method detects the edges by looking for the maximum and minimum in the first derivative of the image. The Laplacian method searches for zero crossings in the second derivative of the image to find edges. An edge has the one-dimensional shape of a ramp and calculating the derivative of the image can highlight its location. The main problem one has to deal with in differential edge detection schemes is noise. The spikes in the derivative from the noise can mask the real maxima that indicate edges. Noise reduction pre-processing can be helpful.
Applying an edge detector to an image may lead to a set of connected curves that indicate the boundaries of objects, the boundaries of surface markings as well curves that correspond to discontinuities in surface orientation. If the edge detection step is successful, the subsequent task of interpreting the information contents in the original image may therefore be substantially simplified. However, it is not always possible to obtain such ideal edges from real life images of moderate complexity. Edges extracted from non-trivial images are often hampered by fragmentation, meaning that the edge curves are not connected, missing edge segments as well as false edges not corresponding to interesting phenomena in the image -- thus complicating the subsequent task of interpreting the image data.[5][6]
Blob analysis
Blob analysis[7], or blob detection is a technique for detecting and analyzing points and/or regions in an image that are either brighter or darker than the surrounding. A blob is defined as a region of connected pixels. Blob analysis is often used to provide complementary information about regions, which is not obtained from techniques such as edge detection. These regions could signal the presence of objects or parts of objects in the image domain with application to object recognition and/or object tracking. There are two main classes of blob detectors (i) differential methods (interest point operators) based on derivative expressions and (ii) methods based on local extrema in the intensity landscape (interest region operators).
Since a blob is a region of touching pixels, analysis tools typically consider touching foreground pixels to be part of the same blob. Consequently, what is easily identifiable by the human eye as several distinct but touching blobs may be interpreted by software as a single blob. Furthermore, any part of a blob that is in the background pixel state because of lighting or reflection is considered as background during analysis. In typical applications that use blob analysis, the blob features usually calculated are area and perimeter, blob shape, and location. The versatility of blob analysis tools makes them suitable for a wide variety of applications such as pick-and-place, pharmaceutical, or inspection of food for foreign matter. A reliable software package will tell you how touching blobs are defined. For example, you can define as "touching pixels" as adjacent pixels along the vertical or horizontal axis or include diagonally adjacent pixels.[8]
The performance of a blob analysis operation depends on a successful segmentation of the image, that is, separating the good blobs from the background and each other as well as eliminating everything else in the image that is not of interest. Segmentation usually involves a binarization operation. Without considering variables such as lighting conditions and noise in the image, you could include blobs in your results that you don’t want. If simple segmentation is not possible due to poor lighting or blobs with the same gray level as parts of the background, a segmentation algorithm appropriate to particular image must be developed.
Unlike blob analysis, the feature-based algorithms used in edge detection remain robust in less-than-ideal light conditions and can locate predefined shapes regardless of angle. When deciding which tool to use, note that blob analysis takes less time than edge detection, but edge detection is more robust and can be simpler to use because segmentation is not required.
Watershed algorithm
The watershed algorithm or transformation is an image processing segmentation algorithm that splits an image into areas, based on the topology of the image[9][10]. It segments the image based on the discontinuities of the intensity gradient. Understanding the watershed transform requires that you think of an image as a surface. The bright areas are depicted as "high elevation" and dark areas are "low elevation", so the resultant transformed image has the appearance of a topographical surface. With surfaces, it is natural to think in terms of watersheds or catchment basins (low elevation) and watershed lines (high elevation).
Watershed transformatons produce a complete division of the image into separated regions even if the contrast is poor, thus avoiding the need for any kind of contour joining. The watershed transformation results in regions with good located closed contours, but leads to a strong oversegmentation, i.e., the interesting contours cannot be seen clearly because of many irrelevant contours. Local variations of the image (i.e. noise) can change dramatically the results. This effect is worsened by the use of high pass filters to estimate the gradient, which amplify the noise Either the image must be pre-processed (noise reduction) or regions must be merged on the basis of a similarity criterion afterwards. Techniques applied on large images are usually computationally expensive and complex, entailing efficient parallel algorithms. The computation load of watershed transform is too large for real-time machine vision applications. Watershed tranformation is widely used in medical imaging.
References
- ↑ Analyzing Images The Mathworks
- ↑ Image Analysis Tutorial National Instruments
- ↑ Image Segmentation Demonstration Washington.edu
- ↑ Thresholding [1]
- ↑ Edge Detection Demonstration Washington.edu
- ↑ Edge Detection Tutorial Drexel.edu
- ↑ Blob Analysis and Edge Detection In the Real World EE August 2006 Feature Article
- ↑ Blob Analysis TutorialAALBORG University
- ↑ The Watershed Transformation IMAGE SEGMENTATION AND MATHEMATICAL MORPHOLOGY
- ↑ The Watershed Transform: Strategies for Image Segmentation MATLAB News
| Click [+] for other articles on |
| The Market Place for Lab Automation & Screening | Imaging Systems Imaging Software |

