Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
63 views60 pages

Ch3 Filters v3 Part1

Uploaded by

Trung Phạm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views60 pages

Ch3 Filters v3 Part1

Uploaded by

Trung Phạm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

2/20/24

Computer Vision
Course
School of Information and
Communication Technology

1
2/20/24

Computer Vision
Chapter 3. Image Processing
(Part 1)
Computer Vision Group
School of Information and Communications Technology

Contents

• Remind: digital image


representation
• Point Operators
• Convolution and spatial filtering
• More neighborhood operators
• Image transforms

CV Group – School of Information and Communication and Technology


4
4

2
2/20/24

Digital images ?

• What we can see on the picture?


• A car?
• What does the machine see?
• Image is a matrix of pixels
• Image N x M : N xM matrix
• 1 pixel (gray levels):
• A intensity value: 0-255
• Black: 0
• White: 255

Digital images ?
x
• For an image I
• Index (0,0): Top left corner
• I(x,y): intensity of pixel at
the position (x,y)
y

3
2/20/24

Digital images ?

• Principal type of images


• Binary image:
- I(x,y) Î {0 , 1}
- 1 pixel: 1 bit

• Gray image:
- I(x,y) Î [0..255]
- 1 pixel: 8 bits (1 byte)

• Color image
- IR(x,y), IG(x,y) IB(x,y) Î [0..255]
- 1 pixel: 24 bits (3 bytes )

• Other : multi-spectral images, depth images, etc.

Color image in RGB space

It exists other color spaces:


Lab, HSV, …

4
2/20/24

Images are sampled and quantized

• An image contains discrete number of pixels


• A simple example
• Pixel value:
75
• “grayscale”
(or “intensity”): [0,255]

231

148

Images are sampled and quantized

• An image contains discrete number of pixels


• A simple example
• Pixel value: [90, 0, 53]
• “grayscale”
(or “intensity”): [0,255]

• “color”
• RGB: [R, G, B]
• Lab: [L, a, b] [249,
• HSV: [H, S, V] 215,
203]

[213, 60, 67]

10

10

5
2/20/24

Modification of images values

• Isolated transformations (point operators/point processing) of the pixels


in an image
• Read the value of a pixel ® replace it by another
• Ex.: contrast enhancement, histogram egalization

• There are also local transformations


• Read the values of few neighboring pixels ® compute a new value for a pixel
• Convolutions, correlations, …
• …and global transformations
• Read the values of all pixels in the image ® compute a new value for one pixel
• FFT, …

11

11

Pixel transformation

Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.

12

12

6
2/20/24

Contents

• Remind: digital image


representation
• Point Operators
• Convolution and spatial filtering
• More neighborhood operators
• Image transforms

CV Group – School of Information and Communication and Technology


13
13

Point processing

• The output at one point depends only on that point


but not other neighborhoods
s = T(r)
§ r = f(x, y)
§ s = g(x, y)
§ T: transformation function

14

14

7
2/20/24

Homogenous transformation

s=T(r)
light

The output is
T(r) identical as the
input : s = r
m

r
Dark

m
Dark Light

15

15

Linear / Non-linear transformation

s=T(r) s=T(r)
light
light

T(r) T(r)

n n

r r
Dark
Dark

m m
Dark Light Dark Light

16

16

8
2/20/24

Contrast stretching

s=T(r)
Light

T(r) • The values of r below m are


compressed by T into a narrow
range of s, toward black.
m
• The opposite effect takes place for
values of r above m.

r
Dark

m
Dark Light

17

17

Thresholding function

s=T(r)
1

T(r)
Thresholding function T(r)
outputs the image as binary
image:
• s = 0 if r <m
• s = 1 if r >= m
0 r
m

18

18

9
2/20/24

Some Basic Gray Level Transformations

• Image Negatives
• Log Transformations
• Power-Law Transformations
• Piecewise-Linear Transformation Functions
• Histogram Processing

19

19

Image Negatives
• The negative of an image with gray levels in the range [0, L-
1] is obtained by s = L - 1 – r

L-1

3L/4
Ouput gray level, s

L/2 Negative

L/4

Input image Negative of the


input image
0 L/4 L/2 3L/4 L-1
Input gray level, r

20

20

10
2/20/24

Log Transformations

• The general form of the


log transformation: L-1
s = c ´ log(1 + r)
c: constant 3L/4

Output gray leve, s


Log
r³0
L/2

L/4 Inverse
log

0 L/4 L/2 3L/4 L-1

Input gray level r

21

21

Log Transformations
• This 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 of higher values of input levels.

• Use this Log to expand the values of dark pixels in an


image while compressing the higher-level values.

22

22

11
2/20/24

Inverse Log Transformations


• This transformation maps
• a wide range of low gray-level values in the input image
into a more narrow range of output levels.
• The opposite is true of higher values of input levels.
• Use this Inverse Log if you want to compress the
values of dark pixels in an image while expanding the
higher-level values.

23

23

Log Transformations
• Expand the values of dark pixels in an image while
compressing the higher-level values

24

24

12
2/20/24

Power-Law (Gamma) Transformations

• The general form of power-


law transformation is:
• g > 1: compress values in dark
area, while expanding values in
light area 𝑠 = 𝑐. 𝑟 g
• g < 1 : expand values in dark
area, while compressing values
in light area
• r : normalized values to [0, 1]
• c : scaling constant c
corresponding to the bit size
used

25

25

Power-Law (Gamma) Transformations

• γ1 = 1; γ1 = 3; γ2 = 4; γ3 = 5;

Increasing the dynamic


ranges of high intensities

26

26

13
2/20/24

Power-Law Transformations

• Given input image I, intensities are falled into [0, 255]. Use s =
r0.3 to find output image

24 25 45 18 90 45 54 3 3 3 2 4 3 3
16 2 25 214 97 54 54 2 1 3 5 4 3 3
18 154 14 201 98 65 54 2 5 2 5 4 3 3
19 254 13 201 50 31 24 2 5 2 5 3 3 3
200 210 254 231 47 201 8 5 5 5 5 3 5 2
21 218 217 120 102 156 58 2 5 5 4 4 5 3
0 236 208 10 12 95 4 0 5 5 2 2 4 2

27

27

Gama correction

28

28

14
2/20/24

Gama correction

In Practice with grey level image :


k = 255
n = r/255

29

29

Gama correction

Image: Wikipedia

30

30

15
2/20/24

Piecewise-Linear Transformation

• Contrast stretching:
L-1
• the idea behind contrast
stretching is to increase the
dynamic range of the gray levels (r2, s2)
in the image being processed 3L/4

• Output: T(r)
• Output values of input ones from (0, 0) L/2
to (r1, s1) decrease
• Output values of input ones from
(r1, s1) đến (r2, s2) increase.
L/4
(r1, s1)

0 L/4 L/2 3L/4 L-1

31

31

Piecewise-Linear Transformation
L-
L-1
• If r1 = s1, r2 = s2, 1
3L/4/
• the function becomes 4
Homogenous transformation
L/
L/2
2 T(r)
(r2, s2)
L/ s2) (r1, s1)
L/4
• If s1 = 0, s2 = L-1, 4 s1 )
Cấp xám
• the function become thresholding 0 L/4L/ đầu vào
L/
L/2 3L L-
3L/4 L-1
4 2 /4 1
function
L-1
(r2, s2)
• Output is a binary image
3L/4

T(r)
L/2

L/4
(r1, s1)
0 L/4 L/2 3L/4 L-1

32

32

16
2/20/24

Piecewise-Linear Transformation
(r2, s2)
• If (r1, s1) = (rmin, 0) ; 255

(r2, s2) = (rmax, 255)


• Linear stretching T(r)

(r1, s1)
0
• If (r1, s1) = (rsmin, 0), rsmin > rmin 0 rmin rmax

(r2, s2) = (rsmax, 255) rsmax < rmax 255


(r2, s2)
• Linear stretching with saturation

T(r)

0 (r1, s1)
0 rmin rsmin rsmax rmax

33

33

Piecewise-Linear Transformation

Original image, low Contrast sketching Thresholding


contrast (r1, s1) = (rmin, 0) (r1, s1) = (m, 0)
(r2, s2) = (rmax, L-1) (r2, s2) = (m, L-1)
m: mean of intensities

34

34

17
2/20/24

Image histogram

• What is histogram?
• Histogram of an image with gray level range [0, L-1] is a
discrete function: ℎ 𝑟! = 𝑛!
• 𝑟! is kth gray level
• 𝑛! : number of pixels that have level 𝑟!
• Histogram is a graphical representation of the repartition
of colours among the pixels of a digital image

35

35

Image histogram

• Normalized histogram?
• The histogram should be normalized by dividing all elements to total
$"
number of pixels in the image (n) : ℎ 𝑟! = $

Image dynamic range = [min intensity, max intensity]

36

36

18
2/20/24

Image histogram

• Properties?
• Only statistic information
• No indication about the location of pixel (no spatial information)
• Different images can have the same histogram

37

37

Image Brightness

• Brightness of a grayscale image is the average intensity of all


pixels in an image
• refers to the overall lightness or darkness of the image

38

38

19
2/20/24

Contrast

• The contrast of a grayscale image indicate how easily object


in the image can be distinguished
• Many different equations for contrast exist
• Standard deviation of intensity values of pixels in the image
& (
1 )
𝐶= * * 𝐼 𝑢, 𝑣 − 𝑚𝑒𝑎𝑛
𝑤ℎ
#$% '$%

• Difference between intensity value maximum et minimum

max 𝐼(𝑢, 𝑣) − min(𝐼(𝑢, 𝑣))


𝐶=
max 𝐼(𝑢, 𝑣) + min(𝐼(𝑢, 𝑣))

39

39

Contrast

• Contrast vs histogram

40

40

20
2/20/24

Histogram and Brightness

Dark image

Light image

41

41

Histogram and Contrast

Low- contrast
image

High- contrast
image

42

42

21
2/20/24

Histogram

• If we can somehow equalize the histogram of an


image à we can make it higher contrast.

43

43

Histogram equalization
• Input:
• Image I which have L gray levels rk Î [0, L-1], k=0, 1, ..., L-1. Total pixels
is n.
• Assume that the input image is low contrast

• Output:
• Image J with gray level sk Î [0, L-1], k=0, 1, ..., L-1
• Histogram of modified image: uniform distribution
• Each gray level in the image occurs with the same frequency

44

44

22
2/20/24

Histogram equalization

• First assume continuous case


‒ r: random variance represent value of gray level in input
image, 0 ≤ 𝑟 ≤ 1
‒ s: random variance represent value of gray level in out put
image è We have to find out T where: s = T(r)

The transform should remain the characteristic of image

45

45

Histogram equalization
• Matching function:
• If T is the cumulative distributive function of r multiplied by (L − 1),
then s is uniformly distributed on [0, L − 1]

• s = T(r) = (L-1) CDF (r)

46

46

23
2/20/24

Histogram equalization
• Discrete domain (apply to image)

49

49

Histogram equalization
• Step-by-step
• s1. count the number of pixels which have gray level k
in image, let’s say nk (k=0, 1, ..., L-1)

𝑛!
• s2. compute p(k) like follows 𝑝(𝑘) =
𝑛
(normalized histogram): k = 0, 1, 2, ..., L-1.

50

50

24
2/20/24

Histogram equalization
• s3. Compute T(k) (cumulative histogram)
! !
1
𝑇(𝑘) = * 𝑝(𝑗) = * 𝑛* k = 0, 1, 2, ..., L-1.
𝑛
*$+ *$+

• s4. Gray level sk of output image, J, responsible to gray


level k of input image is calculated by:
𝑠! = 𝑟𝑜𝑢𝑛𝑑 (𝐿 − 1)𝑇(𝑘) k = 0, 1, 2, ..., L-1.

• s5. Build the output image by replacing the gray level k by


sk.

51

51

Histogram equalization

Ex. 1. Input image I has 10 levels.


Equalize the histogram of I # pixels

2 3 3 2 6

4 2 4 3 5 Histogram

3 2 3 5 4

2 4 2 4 3

2
k 0 1 2 3 4 5 6 7 8 9
1
nk 0 0 6 5 4 1 0 0 0 0 Gray level

0 1 2 3 4 5 6 7 8 9

52

52

25
2/20/24

Histogram equalization

k 0 1 2 3 4 5 6 7 8 9

nk 0 0 6 5 4 1 0 0 0 0

!
* 𝑛* 0 0 6 11 15 16 16 16 16 16
*$+

𝑇(𝑘) 0 0 6/16 11/16 15/16 16/16 16/16 16/16 16/16 16/16

𝑠! = 9 ∗ 𝑇(𝑘) 3.3 6.1 8.4


0 0 9 9 9 9 9
»3 »6 »8

53

53

Histogram equalization

k sk 2 3 3 2 # pixcels

0 0 6
4 2 4 3
1 0 5
3 2 3 5
2 3 4
2 4 2 4
3 6
3
4 8
2
5 9 3 6 6 3
6 9 1 Gray
8 3 8 6 level
7 9
8 9 6 3 6 9 0 1 2 3 4 5 6 7 8 9
9 9 3 8 3 8 Histogram after equalization

54

54

26
2/20/24

Histogram equalization

55

55

Histogram equalization

If we take the same image with different contrasts, histogram equalization


will give the same results for all images

56

56

27
2/20/24

Histogram equalization

• Discussion
• Compare between histogram equalization and Piecewise-
Linear Transformation Functions
• Is histogram equalization always good?

57

57

Histogram equalization

• Change histogram of modified image into uniform distribution

• No parameters. OpenCV: cv2.equalizeHist(img)

58

58

28
2/20/24

Linear stretching

¡ Linear transform

59

59

Linear stretching

No differences?

60

60

29
2/20/24

Histogram equalization

61

61

Histogram equalization

62

62

30
2/20/24

Local Histogram equalization

63

63

Histogram matching/specification

• In some cases: uniform histogram does not have a


best result
àSpecify a good histogram
àTransform the image to have the specific histogram

So, we have histogram matching or histogram


specification problem

64

64

31
2/20/24

Histogram matching

Desired histogram

è Additional lecture
65

65

Local histogram enhancement

• Problem: how to light up the bottom right part in


bellow image?

73

73

32
2/20/24

Histogram statistic

Original image After histogram equalization

74

74

Histogram statistic

• Compute global statistic

• Local mean and local variance:

75

75

33
2/20/24

Histogram statistic

• Problem:
• how to enhance the contrast of one part in the image but
not affect other parts
• Idea:
• only increase or decrease desired parts while remaining
the others

• In which: k0, k1, k2 are constant coefficients


• S(x, y): neighborhood of 3 x 3

76

76

Histogram statistic

77

77

34
2/20/24

Histogram statistic

78

78

Implement Histogram statistic

• step 1. read the input image


• step 2. compute the mean and the variance of image.
• step 3. use a window of 3x3 slide for every point of
the input image
• At each point: compute the local mean and local variance
• Apply the equation:

79

79

35
2/20/24

Contrast enhancement for color images ?

• Histogram equalization of color images ?


• Apply separately the procedure to each of the three
channels
• will yield in a dramatic change in the color balance
• NOT RECOMMENED unless you have a good reason for doing
that.
• Recommended method
• Convert the image into another color space such as the Lab color
space or HSL/HSV color space
• Apply the histogram equalization on the Luminance channel
• Convert back into the RGB color space

80

80

Contents

• Remind: digital image


representation
• Point Operators
• Convolution and spatial filtering
• More neighborhood operators
• Image transforms

CV Group – School of Information and Communication and Technology


81
81

36
2/20/24

Image filtering

• Image filtering:
• Image filters in spatial domain (called spatial filtering)
– Filter is a mathematical operation of a grid of numbers
– Smoothing, sharpening, measuring texture, …
• Image filters in the frequency domain (later)
– Filtering is a way to modify the frequencies of images
– Denoising, sampling, image compression,…

• Really important!
• Enhance images: Denoise, smooth, increase contrast, etc.
• Extract information from images:
• Texture, edges, distinctive points, etc.
• Detect patterns
• Template matching

82

82

Convolution and spatial filtering

• Spatial filtering
• affects directly to pixels in image
• Local transformation in the spatial domain can be represented as:
g(x,y) = T(f(x,y))
• T may affect the point (x,y) and its neighborhood (K) and output a
new value
(K: Filter/Mask/Kernel/Window/Template Processing)
• Same function applied at each position
• Output and input image are typically the same size
• Convolution: Linear filtering, function is a weighted
sum/difference of pixel values
I' = I * K

83

83

37
2/20/24

Fundamental of spatial filtering


y

Mask w(-1,-1) w(-1,0) w(-1,1)

w(0,-1) w(0,0) w(0,1)

w(1,-1) w(1,0) w(1,1)


f(x-1,y-1) f(x-1,y) f(x-1,y+1)

f(x,y-1) f(x,y) f(x,y+1)


x
f(x+1,y-1) f(x+1,y) f(x+1,y+1)

R = 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)

84

84

Spatial Convolution

• Convolution: Linear filtering, function is a weighted


sum/difference of pixel values
G G
𝑓(𝑛, 𝑚) = + + 𝑓 𝑘, 𝑙 ×ℎ[𝑛 − 𝑘, 𝑚 − 𝑙]
!EFG HEFG

Mask (kernel)

Original image Filtered image

85

85

38
2/20/24

Spatial convolution

• New value of a pixel(i,j) is a weighted sum of its neigbors

K: convolution kernel,
mask, filter, …

86

86

Spatial convolution

• New value of a pixel(i,j) is a weighted sum of its neigbors

Source: http://machinelearninguru.com

87

87

39
2/20/24

Spatial convolution

I' = I * K

88

88

Spatial convolution

I' = I * K

89

89

40
2/20/24

Spatial convolution

I' = I * K

90

90

Spatial convolution

• Border problem?
• Ignore, set to 0
• Zero padding io the input matrix
• reflect across edge:
• f(-x,y) = f(x,y)
• f(-x,-y) = f(x,y)
• …

91

91

41
2/20/24

Spatial convolution

Source: http://machinelearninguru.com

92

92

Spatial Correlation vs Convolution

93

93

42
2/20/24

Spatial Correlation vs Convolution

• Correlation

94

94

Spatial Correlation vs Convolution

• If the mask is symmetric these two operations are


identical
• Correlation:
• Use to find which part in image match with a certain
“template”
• Not associative è if you are doing template matching, i.
e. looking for a single template, correlation is sufficient
• Convolution:
• Use for filtering image (noise removing, enhancement, ..)
• Associative: allows you to "pre-convolve" the filters è
useful when you need to use multiple filters in
succession:
I*h*g = I * (h*g)
• In Matlab: correlation: filter2, convolution: conv2

95

95

43
2/20/24

Some kernels

• 2D spatial convolution
• is mostly used in image processing for feature extraction
• And is also the core block of Convolutional Neural Networks (CNNs)
• Each kernel has its own effect and is useful for a specific task such
as
• blurring (noise removing),
• sharpening,
• edge detection,
• …..

96

96

Smooth filtering

0 0 0
* 0 1 0
0 0 0

Original image Filtered image


(no change)

0 0 0
* 0 0 1
0 0 0

Filtered image
Original image Source: David Lowe (shifted left by 1 pixel)

97

97

44
2/20/24

Smooth filtering

• Application
• Noise remove
• Image blurring

• Average filtering is the simplest of smooth filtering

98

98

Average (mean) filtering

f(x-1,y-1) f(x-1,y) f(x-1,y+1) 1 1 1


1 Average
f(x,y-1) f(x,y) f(x,y+1) 1 1 1 mask
9
f(x+1,y-1) f(x+1,y) f(x+1,y+1) 1 1 1

1
𝑔(𝑥, 𝑦) = [𝑓(𝑥 − 1, 𝑦 − 1) + 𝑓(𝑥 − 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦 + 1) +
9
𝑓(𝑥, 𝑦 − 1) + 𝑓(𝑥, 𝑦) + 𝑓(𝑥, 𝑦 + 1) +
𝑓(𝑥 + 1, 𝑦 − 1) + 𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 + 1, 𝑦 + 1)]

99

45
2/20/24

Average (mean) filtering

• Mask:
• All elements of the mask are equal
• Results:
• Replacing each pixel with an average of its neigborhood
• Achieve smoothing effect

Original image Filtered image Filtered image


with box size 5x5 with box size 11x11

100

Weighted Average filtering

• The pixel corresponding to the center of the mask is more


important than the other ones.

1 2 1
1
× 2 4 2
16
1 2 1

!
𝑔(𝑥, 𝑦) = [𝑓(𝑥 − 1, 𝑦 − 1) + 2𝑓(𝑥 − 1, 𝑦) + 𝑓 𝑥 − 1, 𝑦 + 1
!"
+ 2𝑓 𝑥, 𝑦 − 1 + 4𝑓 𝑥, 𝑦 + 2𝑓 𝑥, 𝑦 + 1
+ 𝑓 𝑥 + 1, 𝑦 − 1 + 2𝑓 𝑥 + 1, 𝑦 + 𝑓(𝑥 + 1, 𝑦 + 1)]

101

101

46
2/20/24

Gaussian filtering

0.003 0.013 0.022 0.013 0.003


0.013 0.059 0.097 0.059 0.013
0.022 0.097 0.159 0.097 0.022
0.013 0.059 0.097 0.059 0.013
0.003 0.013 0.022 0.013 0.003
Gaussian function in 3D Gaussian filter with size 5 x5 , sigma =1

Rule for Gaussian filter:


set filter width to about 6σ or 8σ [+1]
Gaussian image

102

102

Gaussian filtering

Original image Filtered image Filtered image


with box size 5x5 with box size 11x11

103

103

47
2/20/24

Smooth filtering

• General formulation

• To avoid modifying the overall luminance of the


image, the sum of the coefficients must be equal to
1

104

104

Smooth filtering

• Bluring usage: delete unwanted (small) subjects

Original image Average filtering: 15x15 Thresholding of blurring image

105

105

48
2/20/24

Sharpening filter

• Highlighs Intensity Transitions


• Base on first and second order derivatives

106

106

First order derivative

• Zero in flat region


• Non-zero at start of step/ramp region
• Non-zero along ramp

107

107

49
2/20/24

Second order derivative

• Zero in flat region


• Non-zero at start/end of step/ramp region
• Zero along ramp

108

108

Example of first and second derivatives

109

109

50
2/20/24

Derivative

• 1st and 2nd Order Derivative Comparison:


• First Derivative:
• Thicker Edge;
• Strong Response for step changes;

• Second Derivative:
• Strong response for fine details and isolated points;
• Double response at step changes

110

110

First derivatives
• Filters used to compute the first derivatives of image
• Robert
• Prewitt
Robert kernels
• less sensitive to noise
• Smoothing with mean filter,
then compute1st derivative
• Sobel:
• less sensitive to noise Prewitt kernels

• Smoothing with gaussian,


then computing1st derivative

y Sobel kernels x

111

111

51
2/20/24

First derivatives

• Sobel

Vertical Edge
(absolute value)

112

112

First derivatives

• Sobel

Horizontal Edge
(absolute value)

113

113

52
2/20/24

2nd derivatives - Laplacian filtering


• The Laplacian operator is defined as:

𝜕I 𝑓 𝜕I 𝑓
∇I 𝑓 = +
𝜕𝑥 I 𝜕𝑦 I

𝜕 I𝑓
= 𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦) − 2𝑓(𝑥, 𝑦)
𝜕𝑥 I
𝜕 I𝑓
= 𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥, 𝑦 − 1) − 2𝑓(𝑥, 𝑦)
𝜕𝑦 I

114

114

2nd derivatives - Laplacian filtering


• Can be computed as 0 1 0
∇# 𝑓 = [𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦) + 1 -4 1
𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥, 𝑦 − 1)] − 4𝑓(𝑥, 𝑦)
0 1 0
• Or
∇# 𝑓 = 4𝑓(𝑥, 𝑦) − [𝑓(𝑥 + 1, 𝑦) + 0 -1 0
𝑓(𝑥 − 1, 𝑦) + 𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥, 𝑦 − 1)]
-1 4 -1
• 90o isotropic filter
0 -1 0

115

115

53
2/20/24

2nd derivatives - Laplacian filtering


• Can be computed as
1 1 1
∇) 𝑓 = [𝑓(𝑥 + 1, 𝑦 + 1) + 𝑓(𝑥 + 1, 𝑦) +
𝑓(𝑥 + 1, 𝑦 − 1) + 𝑓(𝑥 − 1, 𝑦 + 1) +
𝑓(𝑥 − 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦 − 1) +
1 -8 1
𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥, 𝑦 − 1)] − 8𝑓(𝑥, 𝑦)
1 1 1
• Or

∇) 𝑓 = 8𝑓(𝑥, 𝑦) − [𝑓(𝑥 + 1, 𝑦 + 1) +
-1 -1 -1
𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 + 1, 𝑦 − 1) +
𝑓(𝑥 − 1, 𝑦 + 1) + 𝑓(𝑥 − 1, 𝑦) + -1 8 -1
𝑓(𝑥 − 1, 𝑦 − 1) + 𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥, 𝑦 − 1)]
• 45o isotropic filter -1 -1 -1

116

116

Sharpening filter using laplacian

117

117

54
2/20/24

Sharpening filter using laplacian

𝑓(𝑥, 𝑦) − ∇2 𝑓(𝑥, 𝑦)
𝑔(𝑥, 𝑦) = 4
𝑓(𝑥, 𝑦) + ∇2 𝑓(𝑥, 𝑦)

0 -1 0 0 0 0 0 -1 0
-1 5 -1 = 0 1 0 + -1 4 -1
0 -1 0 0 0 0 0 -1 0

-1 -1 -1 0 0 0 -1 -1 -1
-1 9 -1 = 0 1 0 + -1 8 -1
-1 -1 -1 0 0 0 -1 -1 -1

118

118

Sharpening filter

a) Original image
b) Laplacian filtering
c) Laplacian with
scaling
d) Adding original with
Laplacian image

119

119

55
2/20/24

Sharpening filter

120

120

Contents

• Remind: digital image


representation
• Point Operators
• Convolution and spatial filtering
• More neighborhood operators
• Image transforms

CV Group – School of Information and Communication and Technology


121
121

56
2/20/24

Median filter

• No new pixel values introduced


• Removes spikes:
• good for impulse, salt & pepper noise
• Non-linear filter

122

Median filter

Salt and
Median
pepper
noise filtered

Plots of a row of the image

Source: M. Hebert

123

57
2/20/24

Median filter

• Median filter is edge preserving

124

Max/ Min filters

• The maximum and minimum filters are shift-invariant


• The Minimum Filter: replaces the central pixel with the darkest one in
the running window

• The Maximum Filter: replaces the central pixel with the lightest one

125

125

58
2/20/24

Examples

126

126

Examples

Initial image Adding Salt and pepper noise Mean filter 3x3

Min filter 3x3 Max filter 3x3 Median filter 3x3


127

127

59
2/20/24

Exercises

• Given an 8-bit image – 8 x 8

1) Compute and show the histogram: 8 bins, 16 bins, 32 bins


2) Comment about the contrast of the image
3) Equalize the histogram for above image with 8-bins

128

128

THANK YOU !

CV Group – School of Information and Communication and Technology


129
129

60

You might also like