CoE4TN4
Image Processing
Chapter 3: Intensity
Transformation and Spatial
Filtering
Image Enhancement
• Enhancement techniques: to process an image so that the
result is more suitable than the original image for a specific
application.
• Specific: techniques are very much problem oriented
– A technique that is useful for X-ray images might not be the best for
pictures transmitted from a space probe.
• Enhancement approaches:
1. Spatial domain
2. Frequency domain
2
Basics
• Spatial domain: collection of pixels forming an image
• Spatial domain techniques are techniques that operate directly
on pixels
• Frequency domain techniques are based on modifying the
Fourier transform of an image
3
Spatial domain: background
• Spatial domain processing: procedures that operate directly on
the pixels of the input image to generate the pixel values of
processed (output) image.
• g(x,y)=T[f(x,y)]
– f(x,y): input image
– g(x,y): processed image
– T: an operator defined over some neighborhood of (x,y)
4
Spatial domain: background
• Neighborhood around (x,y): usually a square or rectangular
subimage area centered at (x,y).
• Center of subimage is moved pixel by pixel. At each location
(x,y) the operator T is applied to find the value of g(x,y).
Input (f) T Output (g)
5
Spatial domain: background
• Simplest form of T (the operator): the neighborhood is 1x1.
• g(x,y) only depends of value of f at (x,y).
• T: a gray-level transformation (mapping)
• This type of processing is called point processing
Input (f) T Output (g)
6
Spatial domain: Point Processing
• s=T(r)
• r: gray-level at (x,y) in original image f(x,y)
• s: gray-level at (x,y) in processed image g(x,y)
• T is called gray-level transformation or mapping
r s
Input T Output
7
Spatial domain: Point Processing
• The relation s=T(r) can be shown as a curve
• Example: effect of the transform shown below is that an image with higher
contrast than the original image
• How: the gray levels below m are darkened and the levels above m are
brightened .
s s=T(r)
Contrast stretching m
m r
Dark Light
8
Spatial domain: Point Processing
Contrast stretching
9
Spatial domain: Point Processing
• Limiting case: produces a binary image (two level) from the
input image
s=T(r) s s=T(r)
s
r m r
Dark m Light
Dark Light
Thresholding
10
Spatial domain: Point Processing
Contrast stretching
11
Gray-level transforms
12
Image Negative
• Suited for enhancing white
detail embedded in dark regions
• Has applications in medical
imaging
s s=T(r)
L-1
r
L-1
Dark Light
13
Image Negative
14
Log Transformation
• Log transformation: maps a narrow range of low gray-level
values in the input image into a wider range of output levels.
• The opposite is true for higher values of input levels
• Expand the values of dark pixels in an image while
compressing the higher-level values
15
Log Transformation
• Log transformation has the important property of compressing the
dynamic range of images with large variations in pixel values
• Compression of dynamic range: Sometimes the dynamic range exceeds
capability of the display device. An effective way to compress the
dynamic range of pixel values is
• Example: range=[0, 2.5x106] [0, 6.4]
choose c=255/6.4
16
17
Power-law transformation
• If γ <1: transformation maps a narrow range of dark input
values into a wider range of output values
• If γ >1:opposite of the above effect
• Many devices used for image capture, printing and display
respond according to a power low.
• The process used to correct this power-low response
phenomena is called gamma correction.
• Exp: CRT devices, intensity to voltage relation is a power
function with γ=1.8 to 2.5
– The output of CRT is a darker image
• To correct we pre-process the image with
18
Power-law transformation
19
Contrast stretching
• Low contrast images occur often due to poor or non-uniform lighting
conditions or due to non-linearity or small dynamic range of the imaging
sensor.
• The transformation looks like:
• The locations of points (r1,s1) and (r2, s2 )
control the shape of the transformation
function.
20
Contrast stretching
• Special cases:
– if r1 = s1 & r2 = s2, transformation is linear (no change)
– if r1 = r2, s1 = 0 & s2 = L-1, thresholding transformation
21
Intensity-level Slicing
• Highlights a specific range of gray-levels in an image
s
2 basic methods:
1. Display a high value for all
gray levels in the range of
interest and a low value for all
other r
2. Brighten the desired range of Dark A B Light
gray levels but preserve the
gray level tonalities
r
Dark A B Light
22
Bit plane slicing
7
One 8-bit pixel value 6
5
Bit plane 7 4
3
(most significant) 2
1
0
Bit plane 0
(least significant)
23
Bit plane slicing
0 0 1
0 1 0
0 0 1
17 64 128 0 0 0
0 0 0
1 0 0 0 0 1
15 63 132 0 1 0
0 0 0 0 0 0
11 60 142 MSB 0 1 0
0 0 0 1 0 0
1 1 0
0 0 0 1 0 0
0 0 1 1 1 1
1 1 0 1 0 1
1 1 0
0 0 1 0 1 1
1 1 0
0 0 1 LSB 1 0 1
1 0 0 1 0 0
1 1 0
1 0 0
24
Bit plane slicing
25
Bit plane slicing
• Higher order bit planes of an image carry a significant amount
of visually relevant details
• Lower order planes contribute more to fine (often
imperceptible) details
26
Histogram Processing
• Histogram of a digital image is a discrete function that is
formed by counting the number of pixels in the image
that have a certain gray level.
• Often the histogram is normalized by dividing by the
total number of pixels in the image
• In an image with gray levels in [0,L-1] normalized
histogram is given by p(rk)= nk/n where:
– rk is the k th gray level, k=0, 1, 2, …, L-1
– nk number of pixels in the image with gray level rk
– n total number of pixels in the image
• Loosely speaking, p(rk) gives an estimate of the probability of
occurrence of gray level rk.
27
Histogram Processing
• Problem: an image with gray levels between 0 and 7 is given
below. Find the histogram of the image
1 6 2 2
1 3 3 3
4 6 4 0
1 6 4 7
28
Histogram equalization
• Histogram provides a global
description of the appearance of an
image:
– In a dark image, histogram is centered in
the dark side of gray scale
– In a bright image, the histogram is biased
toward the high side of gray levels
• An image whose pixels occupy the
entire range of possible gray levels and
is uniformly distributed will appear as
high-contrast.
29
Histogram equalization
• Goal: find a transform s=T(r)
such that the transformed image
has a flat (equalized) histogram
30
Local histogram processing
• Global histogram processing: pixels are modified by a
transformation function based on the gray-level content of an
entire image
• Sometimes we want to enhance the details over a small area
• Solution: transformation should be based on gray-level
distribution in the neighborhood of every pixel
• Local histogram processing:
– At each location the histogram of the points in the neighborhood is
computed and a histogram equalization or histogram specification
transformation function is obtained
– The gray level of the pixel centered in the neighborhood is mapped
– The center of the neighborhood is moved the next pixel and the
procedure repeated
31
Local histogram processing
32
Local Enhancement
• Mean of gray levels in an image: a measure of darkness,
brightness of the image
• Variance of gray levels in an image: a measure of average
contrast
• Local mean and variance are used as the basis for making
changes that depend on image characteristics in a predefined
region about each pixel
33
Local Enhancement
34
Spatial domain filtering
• Larger neighborhood around (x,y): usually a square or rectangular subimage
area centered at (x,y).
• The center of the subimage is moved pixel by pixel. At each location (x,y)
the operator T is applied to find the value of g(x,y).
Input T Output
35
Spatial domain filtering
Based on the operator T:
• Spatial filtering
• Linear filters • Non-linear filters
• Average filtering
Smoothing • Median filters
• Weighted average filters
filtering • Order-statistics
Sharpening filters
• High-boost filters filters
• Derivative filters
Linear filters can be implemented
by masks but not non-linear filters
36
Spatial domain filtering
• Linear filtering: Result of filtering is a linear combination of the gray-levels
in the neighborhood of (x,y)
• Exp: g(x,y)=w(-1,-1)f(x-1,y-1)+ w(-1,0)f(x-1,y)+ ..+w(0,0)f(x,y)+ ..
+w(1,0)f(x+1,y)+ w(1,1)f(x+1,y-1)
• One approach to find the processed image in this case is to use a mask
(window or filter)
• Mask: a small 2-D array. The values of the elements of the mask are the w’s
Input Output
37
Spatial domain filtering
38
Correlation and Convolution
39
Correlation and Convolution
40
Spatial domain filtering
• Example: each pixel in the processed image is the average of
the gray levels of pixels to the right, left, top, bottom and itself.
• This spatial domain processing can be implemented by the
following mask:
0 1/5 0
1/5 1/5 1/5
0 1/5 0
Input Output
41
Smoothing Filters
• Smoothing filters: used for blurring and noise reduction.
• Blurring: used in preprocessing steps such as removing small
details from an image before object extraction, bridging small
gaps in lines and curves
• Smoothing:
– Averaging (weighted averaging)
– Median filtering
42
Smoothing Filters
• Averaging: By replacing the value of every pixel in an image
by the average of the gray levels in the neighborhood, we get
an image with reduced sharp transitions.
• Because random noise typically consists of sharp transitions
in gray-levels, averaging can be used in noise reduction
• Edges in an image also have sharp transitions
• Average filtering has the side effect of blurring edges
43
Smoothing Filters
44
Median Filtering
• Median filter belongs to a group of filters called order-statistic
filters
• These filters are non-linear
• The output of the filter is obtained by ordering the values of
pixels in the neighborhood and performing some operation on
the ranked data (e.g., min, max, median)
45
Median Filtering
• Median filters are particularly effective in the presence of
impulse noise (salt and pepper noise)
• Unlike average filtering, median filtering does not blur edges
and other sharp details.
• Example: Consider the example of filtering the sequence
below using a 3-pt median filter:
16 14 15 12 2 13 15 52 51 50 49
• The output of the median filter is:
15 14 12 12 13 15 51 51 50
• Note that the impulse noise is removed while the edge is
preserved.
46
Median filtering
• Principal function of median filtering is to force points with
distinct intensities to be more like their neighbors, eliminating
intensity spikes that appear isolated in the neighborhood
• Advantages:
– Removes impulsive noise
– Preserves edges
• Disadvantages:
– performance poor when # of noise pixels in the window is
greater than 1/2 # in the window
– performs poorly with Gaussian noise
47
Median Filtering
48
Sharpening filters
• Objective: highlight fine detail in an image or to enhance
detail that has been blurred
• Sharpening can be achieved by spatial differentiation
• Since images are digital we should define digital
differentiation operators.
• First and second order derivatives are commonly used for
sharpening.
• We consider 1-D case first and then expand the results to
images.
49
Sharpening filters
50
Sharpening filters
• Comparing first and second order derivatives:
1. First-order derivatives generally produce thicker edges in an
image
2. Second order derivatives have a stronger response to fine
details such as thin lines and isolated points
3. Second order derivates produce a double response at step
changes in gray level
• For image enhancement (sharpening) second order derivative
has more applications because of the ability to enhance fine
details
51
Laplacian
• How to obtain 2-D second order derivative for image
enhancement and find a mask corresponding to it?
• We would like our filter to be isotropic: response of the filter
is independent of the direction of the discontinuity in the
image
• Simplest isotropic second order derivative is the Laplacian:
52
Laplacian
53
Laplacian
• Laplacian is a derivative operator: its use highlights
discontinuities in an image and de-emphasizes regions with
slowly varying gray levels.
• All the background are removed
• Background can be recovered simply by adding original and
Laplacian images.
center coefficient negative
center coefficient positive
54
Laplacian
55
Laplacian
• Instead of computing the Laplacian filtered image and then
subtracting it from the original image we can combine the two
operations.
G(x,y)= f(x,y)-[f(x+1,y)+ f(x-1,y)+ f(x,y+1)+ f(x,y-1)]+ 4f(x,y)
= 5f(x,y)-[f(x+1,y)+ f(x-1,y)+ f(x,y+1)+ f(x,y-1)]
56
Laplacian
57
Unsharp masking & High-boost filtering
• A method for sharpening an image is to subtract a blurred
version of the image from the image itself to obtain a mask.
• Add the mask back to the original image
• This method is called unsharp masking
• When k>1, the process is called high-boost filtering.
58
Unsharp masking & High-boost filtering
59
Unsharp masking & High-boost filtering
60
Derivative filters
• Image is a 2-D signal: when we are talking about derivative
we should specify the direction.
• First order derivates are implemented using magnitude of the
gradient
• Gradient:
61
Derivative filters
y
z1 z2 z3
z4 z5 z6
z7 z8 z9
-1 0 -1 1 x
1 0 0 0
62
Derivative filters
y
z1 z2 z3
z4 z5 z6
z7 z8 z9
-1 -1 -1 -1 0 1 x
0 0 0 -1 0 1
1 1 1 -1 0 1
63
Derivative filters
y
z1 z2 z3
z4 z5 z6
z7 z8 z9
-1 -2 -1 -1 0 1 x
0 0 0 -2 0 2
1 2 1 -1 0 1
64
Derivative filters
65
Derivative filters
66
Problem
• A 4x4 image is given as follow.
1) The image is transformed using the point transform shown.
Find the pixel values of the output image.
17 64 128 128 250
15 63 132 133
11 60 142 140
0 r
11 60 142 138 20 130
67
Problem
• A 4x4 image is given as follow.
1) The image is transformed using the point transform shown.
Find the pixel values of the output image.
2) What is the 7-th bit plane of this image
17 64 128 128 250
15 63 132 133
11 60 142 140 10
r
11 60 142 138 14 130
68
Problem
• A 4x4 image is given as follow.
1) Suppose that we want to process this image by replacing each
pixel by the difference between the pixels to the top and
bottom. Give a 3x1 mask that performs this.
2) Apply the mask to the second row of the image
17 64 128 128
15 63 132 133
11 60 142 140
11 60 142 138
69