Image Processing with Point Operations
Image enhancement refers to any technique that improves or modifies the
image data, either for puposes of subsequent visual evaluation or further
numerical processing. Image enhancement techniques include gray level and
contrast manipulation, noise reduction, edge sharpening, linear and
non-linear filtering, magnification, pseudocoloring, and so on. One
useful, broad categorization of enhancement techniques divides them into
point- and region-based operations. Point operations modify pixels of an
image based on the value of the pixel. These are also called zero memory
operations. In contrast, region-based operations calculate a new pixel
value based on the values in a local neighborhood (typically small).
Negating an image is the simplest image modification operation. This
operation changes large values to small and vice versa, according to
where is a pixel value and for the typical 8-bits-per-pixel
monochrome image. For color images the same transformation is applied to
the individual color values. Here we show the effect of negation on both
the color and grayscale images.
![[Graphics:Images/Jankowski_ImageProcessing_gr_37.gif]](Images/Jankowski_ImageProcessing_gr_37.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_38.gif]](Images/Jankowski_ImageProcessing_gr_38.gif)
A common approach to contrast modification is to use a power law point
transformation, where each pixel of the original image is raised to a
specified exponent value. By selecting the exponent values appropriately,
either high or low luminance values can be boosted. A simple, yet useful
contrast manipulation technique, is to define a piecewise linear
transformation to selectively stretch and/or compress a range of luminance
values. The slope of the transformation is chosen greater than 1 in the
region of stretch and less than 1 in the region of compression.
Examples of the effect of selected point operations on the color
"beans" image are displayed below.
![[Graphics:Images/Jankowski_ImageProcessing_gr_39.gif]](Images/Jankowski_ImageProcessing_gr_39.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_40.gif]](Images/Jankowski_ImageProcessing_gr_40.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_41.gif]](Images/Jankowski_ImageProcessing_gr_41.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_42.gif]](Images/Jankowski_ImageProcessing_gr_42.gif)
The image histogram is an estimate of the probability density of the image
pixels. As such, it measures the frequency of occurance of the pixel
luminance values. Many higher-level image processing tasks require the
calculation of a histogram. Here we present the histograms of each of the
three color channels in the "beans" image.
![[Graphics:Images/Jankowski_ImageProcessing_gr_43.gif]](Images/Jankowski_ImageProcessing_gr_43.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_44.gif]](Images/Jankowski_ImageProcessing_gr_44.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_45.gif]](Images/Out23_gr_1.gif)
Image equalization, or linearization, is a common image enhancement
technique. Here is a linearized version of the beans iamge.
![[Graphics:Images/Jankowski_ImageProcessing_gr_46.gif]](Images/Jankowski_ImageProcessing_gr_46.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_47.gif]](Images/Jankowski_ImageProcessing_gr_47.gif)
Amplitude thresholding is one of many segmentation techniques. Two-level
or binary thresholding changes a value to 0 or 1 depending on the setting
of a threshold value. Here is an image segmentation example where we
extract the green beans by thresholding the individual color channels. The
respective thresholds were selected from an examination of the channel
histograms.
![[Graphics:Images/Jankowski_ImageProcessing_gr_48.gif]](Images/Jankowski_ImageProcessing_gr_48.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_49.gif]](Images/Jankowski_ImageProcessing_gr_49.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_50.gif]](Images/Jankowski_ImageProcessing_gr_50.gif)
We now find all the image regions that do not have green pixels and set
them to black.
![[Graphics:Images/Jankowski_ImageProcessing_gr_51.gif]](Images/Jankowski_ImageProcessing_gr_51.gif)
Here we display the original and segmented images.
![[Graphics:Images/Jankowski_ImageProcessing_gr_52.gif]](Images/Jankowski_ImageProcessing_gr_52.gif)
![[Graphics:Images/Jankowski_ImageProcessing_gr_53.gif]](Images/Jankowski_ImageProcessing_gr_53.gif)
Further processing with morphological filters (User's Guide: Section
6.1) may be used to clean up the
segmented image.
Further reading
User's Guide: Section 3.2, 3.3, 3.4, 7.2.
Function Index: HistogramEqualize, ImageHistogram, PlanarImageData, RegionProcessing, ScaleLinear, Threshold, Where.
|