chap4PointProcessing

advertisement
Point Processing
• Basic Image Processing Operations
• Arithmetic Operations
• Histograms
SCCS 476
1
Basic Image Processing Operations
Image-Processing operations may be divided into 3 classes based
on information required to perform the transformation.
• Transforms
– process entire image as one large block
• Neighborhood processing
– process the pixel in a small neighborhood of pixels around
the given pixel.
• Point operations
– process according to the pixel’s value alone (single pixel).
SCCS 476
2
Schema of Image Processing
Image
Transform
Transformed
Image
Image-processing operation
Output
Image
Inverse Transform
SCCS 476
Processed
Transformed
Image
3
Arithmetic Operations
•
•
•
•
•
Addition
Subtraction
Multiplication
Division
Complement
SCCS 476
4
Arithmetic Operations (cont)
Let x is the old gray value, y is the new gray value,
c is a positive constant.
•
•
•
•
•
Addition: y = x + c
Subtraction: y = x - c
Multiplication: y = cx
Division: y = x/c
Complement: y= 255 - x
SCCS 476
5
Arithmetic Operations (cont)
•
•
•
•
•
Addition: y = x + c
Subtraction: y = x - c
Multiplication: y = cx
Division: y = x/c
Complement: y= 255 - x
To ensure that the results are integers in the range [0, 255],
the following operations should be performed
• Rounding the result to obtain an integer
• Clipping the result by setting
• y = 255 if y > 255
• y = 0 if y < 0
SCCS 476
6
Arithmetic Operations (cont)
• MATLAB functions
– Addition: imadd(x,y)
• Add two images or add constant to image
– Subtraction: imsubstract(x,y)
• Subtract two images or subtract constant to image
– Multiplication: immultiply(x,y)
• Multiply two images or multiply image by constant
– Division: imdivide(x,y)
• Divide two images or divide image by constant
– Complement: imcomplement(x)
SCCS 476
7
Addition & Subtraction
• Lighten/darken the image
• Some details may be lost
• MATLAB:
– commands:
• x = imread(‘filename.ext’);
• y = uint8(double(x) + c); or
• y = uint8(double(x) - c);
– function:
• x = imread(‘filename.ext’);
• y = imadd(x, c); or
• y = imsubtract(x, c);
SCCS 476
8
Ex: Addition & Subtraction
Added by 128
Subtracted by 128
Draw graphs of the transformation functions !!!
SCCS 476
9
Multiplication & Division
• Lighten/darken the image
• Some details may be lost (but less than addition/subtraction)
• MATLAB:
– commands:
• x = imread(‘filename.ext’);
• y = uint8(double(x)*c); or
• y = uint8(double(x)/c);
– functions:
• x = imread(‘filename.ext’);
• y = immultiply(x, c); or
• y = imdivide(x, c);
SCCS 476
10
Ex: Multiplication & Division
Multiplied by 2
Divided by 2
Draw graphs of the transformation functions !!!
SCCS 476
11
Comparison: Addition VS Multiplication
SCCS 476
12
Comparison: Subtraction VS Division
SCCS 476
13
Complement
• Create the negative image
• MATLAB:
– commands:
• x = imread(‘filename.ext’);
• y = uint8(255 - double(x));
– function:
• x = imread(‘filename.ext’);
• y = imcomplement(x);
SCCS 476
14
Ex: Complement
Draw a graph of the transformation function !!!
SCCS 476
15
Histogram
• Graph showing the number of pixels for each
intensity
• Normalized histogram: histogram where the
number of pixel is divided by the total number
of pixel so the range is [0,1]
• Cumulative histogram: histogram which shows
the number of pixels whose intensity is less or
equal to each intensity.
SCCS 476
16
Histogram Example
>> p = imread(‘pout.tif’)
>> inshow(p)
>> figure;imhist(p)
SCCS 476
17
What Histogram Describes?
• Brightness
– dark image has gray levels (histogram) clutered at
the lower end.
– bright image has gray levels (histogram) clutered
at the higher end.
• Contrast
– well contrasted image has gray levels (histogram)
spread out over much of the range.
– low contrasted image has gray levels (histogram)
clutered in the center.
SCCS 476
18
Contrast Enhancement by
Spreading Out Histogram
• Histogram Stretching
(Contrast Stretching)
• Histogram Equalization
SCCS 476
19
1. Histogram Stretching
#pixel
#pixel
Imin
Imax
I
0
SCCS 476
I
max
20
Steps of Histogram/Contrast Stretching
• Create the histogram of the image
Gray level ( i )
No. of gray value ( ni )
0……………………………………………. 15
1……………………………………………. . 0
2……………………………………………. . 0
3……………………………………………. .0
4……………………………………………. . 0
5……………………………………………. 70
6……………………………………………110
7……………………………………………. 45
8…………………………………………… 70
9……………………………………………. 35
10………………………………………..... . 0
11………………………………………….. 0
12…………………………………………... 0
13…………………………………………… 0
14…………………………………………… 0
15………………………………………….. 15
SCCS 476
Draw the histogram.
21
Steps of Histogram/Contrast Stretching (cont)
• From the histogram, stretch out the gray levels in the
center of the range by applying the piecewise linear
function
– Ex: [5,9]  [2,14]
– y = [(14 – 2)/(9 – 5)](x – 5) + 2,
Draw a graph of transformation
x y
5
6
7
8
9
2
5
8
11
14
• Gray levels outside this range are either left as original
values or transforming according to the linear function at
the ends of the graph.
SCCS 476
22
Steps of Histogram/Contrast Stretching (cont)
• Change the old gray values to the new gray values by
using the piecewise linear function from the previous
step as a mapping function.
• Create the histogram from the new image
SCCS 476
23
Histogram Stretching: Example
original
output
SCCS 476
24
Histogram before/after Adjustment
After
Before
SCCS 476
25
Histogram Mapping: Piecewise Linear
#pixel
Imin
#pixel
Ix1
Ix2
Imax
I
Imin Iy1
Iy2 Imax
I
Mapping function:
I  Ix1 or I  Ix2
 I;
 ( I  Ix1)

 ( Iy2  Iy1)  Iy1; Ix1  I  Ix2
 ( Ix2  Ix1)
SCCS 476
26
MATLAB: Histogram/Contrast
Stretching
• Command: imadjust
• Syntax: imadjust(x, [a,b], [c,d]);
imadjust(x, [a,b], [c,d], );
– convert intensity x  a to c
– convert intensity x  b to d
– values of a,b,c,d must be between 0 and 1
–  : positive constant (describe the shape of the function,
< 1 concave downward, > 1 concave upward)
SCCS 476
27
Transformation Function with Gamma
(Power –Law Transformation)
Brighten image
Linear mapping
Darken image

 input a 
output 
 ( d  c)  c
 ba 
SCCS 476
28
Example of Adjusting by the PowerLaw Transformation
Adjust by using
Gamma = 0.5
Original
SCCS 476
29
MATLAB: Piecewise Linear
• A MATLAB function for applying a piecewise
linear-stretching function (see Figure 4.15)
• Command: find
• Syntax: find(condition)
• Ex
pix = find(im >= a(i) & im < a(i+1));
pix holds the index for members in im having
intensity between a(i) and a(i+1) include a(i).
SCCS 476
30
2. Histogram Equalization
• The trouble with the methods of histogram
stretching is that they require user input.
• Histogram equalization is an entirely
automatic procedure.
• Idea: Each gray level in the image occurs with
the same frequency.
• Give the output image with uniform intensity
distribution.
SCCS 476
31
Histogram Equalization (cont)
• Mapping function:
g output ( f input ) 
f input
 p(i),
i 0
where p(i) is the PDF of the intensity level i,
obtained from cumulative histogram.
SCCS 476
32
Histogram Equalization: Procedure
Example: Suppose a 4-bit grayscale image has
the histogram associated with a table of the
numbers ni of gray values. (page 78)
SCCS 476
33
Histogram Equalization: Example
BEFORE
AFTER
http://www.mathworks.com/access/helpdesk/help/toolbox/images/histeq.html
SCCS 476
34
MATLAB: Histogram Equalization
• Command: histeq
• Syntax: histeq(image, target_hist)
histeq(image, #bin)
histeq(indexed_im, #bin, target_hist)
histeq(indexed_im, map, #bin)
• Default: #bin = 64
• Output: output_im, [output_im, transform],
new_map, [new_map, transform]
SCCS 476
35
Lookup Tables
• Improve the performance of point processing
• Why?
– one intensity is always mapped to the same value
– reduce the computing time
• Lookup table: array
Input intensity: index in the array
Output intensity: value of the member
SCCS 476
36
Ex: Lookup Table (1)
• Function: output = input/2;
• MATLAB
>> T = uint8(floor(0:255)/2);
>> output = T(input);
SCCS 476
37
Ex: Lookup Table in MATLAB (2)
• Function: 
0.6667 input; input  96

output  2  input 128; 96  input  161
0.6632 input 85.8947;161 input

• MATLAB
>> T1 = 0.6667*[0:95];
>> T2 = 2*[96:160] – 128;
>> T3 = 0.6632*[161:255] + 85.8947;
>> T = uint8(floor([T1 T2 T3]));
SCCS 476
38
Download
Related flashcards

Shades of brown

42 cards

Computer graphics

26 cards

Rendering systems

22 cards

Free graphics software

50 cards

Shades of blue

48 cards

Create Flashcards