Lectures 6&7:
Image Enhancement
Leena Ikonen
Machine Vision and Pattern Recognition (MVPR)
Lappeenranta University of Technology (LUT) [email protected]
Content
• Background
– Spatial domain methods
– Frequency domain methods
• Enhancement by point processing
• Spatial filtering
Background: Motivation
• For preprocessing to make the image look better,
i.e., more suitable for further processing.
• Problems with
– contrast
– sharpness
– smoothness
– noise
– distortions
– etc
Background: Spatial domain methods
• Method: Slide the mask though the image and compute new pixel values
• Image processing function: g(x,y) = T[f(x,y)]
f(x,y) the input image
g(x,y) the processed image
T an operator on f, defined over some neighborhood of (x,y)
• Gray-level transformation (mapping) function: s = T(r)
Background: Frequency domain methods
• Method: Multiply the Fourier transforms of the image and themask, and apply the inverse transform to the multiplication • Convolution:
g(x,y) = h(x,y)*f(x,y)
h(x,y) a linear, postion invariant operator • Fourier transform:
G(u,v) = H(u,v)F(u,v)
H(u,v) the transfer function of the process • Inverse Fourier transform:
Enhancement by point processing: Some simple intensity transformations
• Image negatives:
s = ((L-1) – r) where L = number of gray-levels • Contrast stretching:
– Poor illumination, lack of dynamic range in the imaging sensor, wrong setting of a lens aperture during image acquisition
– To increase the dynamic range of the gray-levels – Piecewise linear function
Enhancement by point processing:
Some simple intensity transformations (cont.)
• Compression of dynamic range:
– The dynamic range exceeds the capability of the
display device. The need of brighter pixels
s = c log(1 + abs(r)) where c is a scaling constant
• Gray-level slicing:
– Highlighting a specific range of gray-levels with
• “removing” or
Gray-level slicing
• Original image (top)
• Thresholded (left)
• Gray-level slicing
Enhancement by point processing:
Some simple intensity transformations (cont.)
• Bit-plane slicing:
– Select the specific bit planes
– For example: the image of eight 1-bit planes
– Plane 7 contains all the high-order bits:
• Higher planes contain visually significant data.
• Note: digital watermarking!
– To select the plane 7 only corresponds to the image
thresholded at gray-level 128
Enhancement by point processing: Histogram processing
• Histogram of the image:
p(r
k) = n
k/n
where
r
kis the k
thgray-level
n
kis the number of pixels with that gray-level
n
is the total number of pixels in the image
k = 0, 1, 2, …, L-1
Enhancement by point processing: Histogram processing (cont.)
• Histogram equalization (or histogram linearization) to obtain the uniform histogram
• Gray-level transformation function and its inverse function • r represents gray-level values normalized to interval [0,1]
(r=0=black, r=1=white)
s = T(r) is the new equalized gray-value for gray-value r where 0<=T(r)<=1 and
T(r) is single-valued and monotonically increasing in 0<=r<=1 r = T-1(s) where 0<=s<=1
Enhancement by point processing: Histogram processing (cont.)
Enhancement by point processing: Histogram processing (cont.)
Enhancement by point processing: Histogram processing (cont.)
• Example:
p
r(r) =
-2r + 2 when 0<=r<=1
0 elsewhere
• What transformation function creates uniform density?
r r r dw w r T s 2 2 0 ) 2 2 ( ) ( s r r s s T r 1( )1 1 ,0 1 1 1
Enhancement by point processing: Histogram processing (cont.)
• In discrete form, probabilities: pr(rk) = nk/n • where 0≤rk≤1, k = 0, 1, …, L-1
• n is the total number of pixels in the image • nk is the number of pixels with gray-value rk
• L is the total number of possible gray-levels in the image • Transformation function:
sk = T(rk) = ∑ pr(rj) = ∑ nj/n for j=0,...,k where 0≤rk≤1 and k=0,1,…,L-1
• Note that ”probability” pr(rj) is simply the fraction of pixels with gray-value rj out of the total number of pixels
• The new gray-value is the gray-level closest to the sum of probabilities up to the original value k: round((L-1) sk)
Enhancement by point processing: Histogram processing (cont.)
• Histogram specification:
– To apply another transformation function than an
approximation to a uniform histogram
• Local enhancement:
– Local processing instead of the whole image
– For example, histogram equalization of a 7x7
Enhancement by point processing: Image subtraction
• The difference between two images f(x,y) and h(x,y):
g(x,y) = f(x,y) – h(x,y)
(pixelwise subtraction)
• The use of a mask image
• Applications in medical image processing: The mask
is a normal image which is subtracted from a sample
image to point out regions of interest, e.g. object that
has moved between frames/images (see next slide)
• Remember also the ”regular” image subtracted from
Enhancement by point processing: Image averaging
• Consider a noisy image g(x,y) formed by the addition
of noise η(x,y) to an original image image f(x,y):
g(x,y) = f(x,y) + η(x,y)
• By averaging noisy images, noise is reduced
• Noise must be uncorrelated and must have zero
average value!
• Do NOT use averaging for salt and pepper noise!
• Example: noisy microscope images
Spatial filtering: Background
• Spatial filtering: the use of spatial filters
• Spatial filters:
– Lowpass filters
– Highpass filters
– Bandpass filters
• The mask:
w1 w2 w3
w4 w5 w6
w7 w8 w9
Spatial filtering: Smoothing filters
• For blurring and noise reduction• Lowpass spatial filtering: 1 1 1
1/9 x 1 1 1 1 1 1
– Neighborhood averaging
• Median filtering: replace the gray-level of each pixel by the median of the gray-levels in a neighborhood of that pixel
– Removes noise, but preserves details such as edges – Filter size? Weighted median filtering?
Spatial filtering: Averaging vs. median
• Original image (upper left) • Original + noise (upper right) • Smoothed image (lower right) • Median smoothing (lower left)
Spatial filtering: Sharpening filters
• For highlighting fine detail in an image or
enhance detail that has been blurred
• Filters:
– Basic highpass spatial filter
– High-boost filtering
Spatial filtering: Basic highpass spatial filtering
• Positive coefficients near the center of a filter, negative coefficients inthe outer periphery
• 3 x 3 sharpening filter: -1 -1 -1 1/9 x -1 8 -1 -1 -1 -1
• The sum of the coefficients is zero
• The filter eliminates the zero frequency term => reduced global contrast of the image
Spatial filtering: High-boost filtering
• Highpass = Original – Lowpass
• Low frequencies are ”lost”
• High-boost or high-frequency-emphasis filter:
High boost = (A)(Original) – Lowpass
= (A-1)(Original) + Original – Lowpass = (A-1)(Original) + Highpass.
• Looks like original image, with edge enhancement by A
Spatial filtering: High-boost filtering (cont.)
• Unsharp masking: to subtract a blurred image from an
original image
• In the printing and publishing industry
• The mask with w = 9A -1 (with A≥1):
-1 -1 -1
1/9 x -1 w -1
Spatial filtering: Derivative filters
• For sharpening an image (averaging vs. differentiation) • The gradient of f(x,y):∂f/∂x df =
∂f/∂y
• The magnitude is the basis for image differentiation methods: mag(df)= ((∂f/∂x)2 + (∂f/∂y)2)(-1/2)
Spatial filtering: Derivate filters (cont.)
• Roberts: 1 0 0 1 0 -1 1 0 • Prewitt: -1 -1 -1 -1 0 1 0 0 0 -1 0 1 1 1 1 -1 0 1 • Sobel: -1 -2 -1 -1 0 1 0 0 0 -2 0 2 1 2 1 -1 0 1Enhancement in the frequency domain
• The use of image frequencies for enhancement• Convolution: f(x)*g(x) F(u) G(u)
• The filtered image g(x,y) using the Discrete Fourier transforms of an original image f(x,y) and a mask h(x,y):
g(x,y) = F-1 [H(u,v)F(u,v)]
• Lowpass filtering • Highpass filtering
Fourier transform: Image power
Radius (pixels) % Image power 8 95
16 97 32 98 64 99.4 128 99.8
Distance from point (u,v) to the origin: D(u,v) = (u2 + v2)(-1/2)
Enhancement in the Frequency Domain: Lowpass filter
• G(u,v) = H(u,v) F(u,v) • Ideal lowpass filter:
– H(u,v) = 1 if D(u,v) ≤ D0, or 0 if D(u,v) > D0 – Original (left) and filtered image (right)
Enhancement in the Frequency Domain: Butterworth lowpass filter
• The transfer function:
H(u,v) = 1/(1 + (D(u,v)/D0) 2n)
where
n is the order of the filter
D0 is the cutoff frequency locus (select!) • H(u,v) from 1 to 0.
• When D(u,v) = D0, H(u,v) = 0.5. • H(u,v) = 1/√2 commonly used.
Enhancement in the Frequency Domain: Highpass filter
• Ideal high pass filter:
– H(u,v) = 0 if D(u,v) ≤ D0, or 1 if D(u,v) > D0 – Original (left) and filtered image (right).
Enhancement in the Frequency Domain: Butterworth highpass filter
• The transfer function:
H(u,v) = 1/(1 + (D0/D(u,v))2n )
where
n is the order of the filter D0 is the cutoff frequency locus • H(u,v) from 0 to 1.
• When D(u,v) = D0, H(u,v) = 0.5. • H(u,v) = 1/√2 commonly used.