Title: Image Transforms
1Image Transforms
- Transforming images to images
2Classification of Image Transforms
- Point transforms
- modify individual pixels
- modify pixels locations
- Local transforms
- output derived from neighbourhood
- Global transforms
- whole image contributes to each output value
3Point Transforms
- Manipulating individual pixel values
- Brightness adjustment
- Contrast adjustment
- Histogram manipulation
- equalisation
- Image magnification
4Grey Scale Manipulation
- Brightness modifications
- Contrast modifications
- Histogram manipulation
5Brightness Adjustment
- Add a constant to all values
- g g k
- (k 50)
6Contrast Adjustment
- Scale all values by a constant
- g gk
- (k 1.5)
7Image Histogram
- Measure frequency of occurrence of each
grey/colour value
8Histogram Manipulation
- Modify distribution of grey values to achieve
some effect
9Equalisation/Adaptive Equalisation
- Specifically to make histogram uniform
10Equalisation Transform
- Equalised image has n x m/l pixels per grey level
- Cumulative to level j
- jnm/l pixels
- Equate to a value in input cumulative histogram
Ci - Ci jnm/l
- j Cil/nm
- Modifications to prevent mapping to 1.
11Thresholding
- Transform grey/colour image to binary
- if f(x, y) gt T output 1
- else 0
- How to find T?
12Threshold Value
- Manual
- User defines a threshold
- P-Tile
- Mode
- Other automatic methods
13P-Tile
- If we know the proportion of the image that is
object - Threshold the image to select this proportion of
pixels
14Mode
- Threshold at the minimum between the histograms
peaks.
15Automated Methods
- Find a threshold ? such that
- (Start at ? 0 and work upwards.)
16Image Magnification
- Reducing
- new value is weighted sum of nearest neighbours
- new value equals nearest neighbour
- Enlarging
- new value is weighted sum of nearest neighbours
- add noise to obscure pixelation
17Local Transforms
- Convolution
- Applications
- smoothing
- sharpening
- matching
18Convolution Definition
- Place template on image
- Multiply overlapping values in image and template
- Sum products and normalise
- (Templates usually small)
19Example
Image
Template
Result
. . . . . ... 3 5 7 4 4 4
5 8 5 4 4 6 9 6 4 4 6 9 5 3
4 5 8 5 4 . . . . . ...
. . . . . ... . . . . .
... . 6 6 6 . . 6 7 6 . .
6 7 6 . . . . . . ... . .
. . . ...
1 1 1 1 2 1 1 1 1
Divide by template sum
20Separable Templates
- Convolve with n x n template
- n2 multiplications and additions
- Convolve with two n x 1 templates
- 2n multiplications and additions
21Example
- Laplacian template
- Separated kernels
0 1 0 -1 4 1 0 1 0
-1 2 -1
-1 2 -1
22Composite Filters
- Convolution is distributive
- Can create a composite filter and do a single
convolution - Not convolve image with one filter and convolve
result with second. - Efficiency gain
23Applications
- Usefulness of convolution is the effects
generated by changing templates - Smoothing
- Noise reduction
- Sharpening
- Edge enhancement
- Template matching
- A later lecture
24Smoothing
- Aim is to reduce noise
- What is noise?
- How is it reduced
- Addition
- Adaptively
- Weighted
25Noise Definition
- Noise is deviation of a value from its expected
value - Random changes
- x ? x n
- Salt and pepper
- x ? max, min
26Noise Reduction
- By smoothing
- S(x n) S(x) S(n) S(x)
- Since noise is random and zero mean
- Smooth locally or temporally
- Local smoothing
- Removes detail
- Introduces ringing
27Adaptive Smoothing
- Compute smoothed value, s
- Output s if s x gt T
- x otherwise
28Median Smoothing
- Median is one value in an ordered set
- 1 2 3 4 5 6 7 ? median 4
- 2 3 4 5 6 7 ? median 4.5
29Original
Smoothed
Median Smoothing
30Gaussian Smoothing
- To reduce ringing
- Weighted smoothing
- Numbers from Gaussian (normal) distribution are
weights.
31Sharpening
- What is it?
- Enhancing discontinuities
- Edge detection
- Why do it?
- Perceptually important
- Computationally important
32Edge Definition
An edge is a significant local change in image intensity.
33Edge Types
- Step edge
- Line edge
- Roof edge
- Real edges
34First Derivative, Gradient Edge Detection
- If an edge is a discontinuity
- Can detect it by differencing
35Roberts Cross Edge Detector
-1 0
0 1
0 -1
1 0
- Simplest edge detector
- Inaccurate localisation
36Prewitt/Sobel Edge Detector
-1 -1 -1
0 0 0
1 1 1
-1 0 1
-1 0 1
-1 0 1
37Edge Detection
- Combine horizontal and vertical edge estimates
38Problems
- Enhanced edges are noise sensitive
- Scale
- What is local?
39Canny/Deriche Edge Detector
- Require
- edges to be detected
- accurate localisation
- single response to an edge
- Solution
- Convolve image with Difference of Gaussian (DoG)
40Example Results
41Second Derivative Operators Zero Crossing
- Model HVS
- Locate edge to subpixel accuracy
- Convolve image with Laplacian of Gaussian (LoG)
- Edge location at crossing of zero axis
42Example Results
43(No Transcript)
44Global Transforms
- Computing a new value for a pixel using the whole
image as input - Cosine and Sine transforms
- Fourier transform
- Frequency domain processing
- Hough transform
- Karhunen-Loeve transform
- Wavelet transform
45Cosine/Sine
- A halfway solution to the Fourier Transform
- Used in image coding
46Fourier
- All periodic signals can be represented by a sum
of appropriately weighted sine/cosine waves
47Transformed section of BT Building image.
48Frequency Domain Filtering
- Convolution Theorem
- Convolution in spatial domain
- is equivalent to
- Multiplication in frequency domain
49Smoothing
- Suppress high frequency components
50Sharpening
- Suppress low frequency components
51Example
52Wavelet
- A hierarchical representation
53Hough Transform
- To detect curves analytically
- Example
- straight lines
54Straight Line
- y mx c
- gradient m, intercept c
- c -mx y
- gradient -x, intercept y
- ALL points in (x, y) transform to a straight line
in (c, m) - Can therefore detect collinear points
55Analytic Curve Finding
- Alternative representation
- to avoid infinities
- Other curves
- higher dimensional accumulators
56Performance Improvement Techniques
- Look at pairs of points
- Use edge orientation
57Karhunen-Loeve (Principal Component)
- A compact method of representing variation in a
set of images - PCs define a co-ordinate system
- 1st PC records most of variation
- 2nd PC records most of remainder
- etc
58Method
- Take a set of typical images
- Compute mean image and subtract from each sample
- Transform images into columns
- Group images into a matrix
- Compute covariance matrix
- Compute eigenvectors
- these are the PCs
- eigenvalues show their importance
59Uses
- Compact representation of variable data
- Object recognition
60Uses
- Hierarchical representation
- Multiresolution processing
- Coding
61Geometric Transformations
- Definitions
- Affine and non-affine transforms
- Applications
- Manipulating image shapes
62Affine TransformsScale, Shear, Rotate, Translate
Length and areas preserved.
Change values of transform matrix elements
according to desired effect. a, e ? scaling b, d
? shearing a, b, d, e ? rotation c, f ?
translation
63Affine Transform Examples
64Warping Example
Ansell Adams Aspens
65Image Resampling
- Moving source to destination pixels
- x and y could be non-integer
- Round result
- can create holes in image
- Manipulate in reverse
- where did warped pixel come from
- source is non-integer
- interpolate nearest neighbours
66You Should Know
- Point transforms
- scaling, histogram manipulation,thresholding
- Local transforms
- edge detection, smoothing
- Global transforms
- Fourier, Hough, Principal Component, Wavelet
- Geometrical transforms