+ All Categories
Home > Documents > (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image...

(5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image...

Date post: 19-Mar-2020
Category:
Upload: others
View: 10 times
Download: 2 times
Share this document with a friend
24
5-1 ( ( 5 5 ) ) I I m m a a g g e e R R e e s s t t o o r r a a t t i i o o n n - Image restoration Recover an image that has been degraded using a priory model of the degradation process Restoration: model the degradation and apply an inverse process to recover the original image Objective process - Image enhancement Emphasize features of an image making it more visually pleasing Enhancement: enhancement techniques (e.g., contrast stretching) are used without a priory model of the process that created the image Subjective process ( ( a a ) ) D D e e g g r r a a d d a a t t i i o o n n / / r r e e s s t t o o r r a a t t i i o o n n p p r r o o c c e e s s s s m m o o d d e e l l - Degradation model
Transcript
Page 1: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-1

((55)) IImmaaggee RReessttoorraattiioonn - Image restoration

Recover an image that has been degraded using a priory model of the degradation process

Restoration: model the degradation and apply an inverse process to recover the original image

Objective process - Image enhancement

Emphasize features of an image making it more visually pleasing Enhancement: enhancement techniques (e.g., contrast stretching) are used without a priory model of the process that created the image

Subjective process

((aa)) DDeeggrraaddaattiioonn//rreessttoorraattiioonn pprroocceessss mmooddeell - Degradation model

Page 2: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-2

A degradation function and additive noise that operate on an input image f(x, y) to produce a degraded image g(x, y):

g(x, y) = H[f(x, y)] + η(x, y)

- Restoration model Given g(x, y) and some knowledge about the degradation function H and the noise η, obtain an estimate ),(ˆ yxf of the original image

- If H is a linear spatially invariant process: In spatial domain:

f(x, y)Degradation

function H

+ g(x, y)

Noise η(x, y)

Restoration filter y)(x,f̂

Degradation Restoration

Page 3: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-3

g(x, y) = h(x, y) * f(x, y) + η(x, y) * h(x, y): spatial representation of the degradation function

Point spread function (PSF): let h(x, y) operate on a point of light to obtain the characteristics of degradation

* Convolution:

∑∑−

=

=

−−=1

0

1

0),(),(1),(*),(

M

m

N

nnymxhnmf

MNyxfyxh

In frequency (Fourier) domain: G(u, v) = H(u, v)F(u, v) + N(u, v)

* G, H, F, and N are the Fourier transforms of g, h, f, and η, respectively * H(u, v): optical transfer function (OTF) h(x, y) may be estimated by experimentation

If the equipment used to acquire the degraded image is available, it is possible to obtain an accurate estimate of the degradation

* E.g., obtain the impulse response of the degradation by imaging an impulse (small dot of light)

Fourier transform of an impulse is a constant (A), hence

Page 4: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-4

AvuGvuH ),(),( =

Hence, * The degradation process is sometimes referred to as “convolving the

image with a PSF or OTF” * The restoration process is sometimes referred to as deconvolution

Inverse filtering

),(),(),(ˆ

vuHvuGvuF = or

),(),(),(),(ˆ

vuHvuNvuFvuF +=

((bb)) NNooiissee mmooddeell - Sources of noise

Arise during image acquisition (digitization) and/or transmission Environmental conditions: light, temperature, humidity, atmospheric disturbance...

Quality of sensing elements and transmission media

Page 5: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-5

Human interference - Assumptions of noise

Independent of spatial coordinates Uncorrelated with respect to the image

((cc)) NNooiissee pprroobbaabbiilliittyy ddeennssiittyy ffuunnccttiioonnss - Spatial noise

Considered as random variables, characterized by a probability density function (PDF)

- Noise models Simulate the behavior and effect of noise

Gaussian (normal) noise, PDF: 22)(

21)( σµ

σπ−−= zezp

* z: gray level, µ: mean value, σ: standard deviation,σ2: variance

Page 6: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-6

Rayleigh noise

<

≥−=−−

.for 0

for )(2)(

2)(

az

azeazbzp

baz

* Mean: µ = a + (πb/4)1/2, variance: σ2 = b(4–π)/4 Erlang (Gamma) noise

<

≥−=

−−

.0for 0

0for )!1()(1

z

zeb

zazp

azbb

* a > 0, b: positive integer, mean: µ = b/a, variance: σ2 = b/a2 Exponential noise

<≥

=−

.0for 00for

)(zzae

zpaz

* a > 0, mean: µ = 1/a, variance: σ2 = 1/a2 Uniform noise

Page 7: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-7

≤≤

−=otherwise0

if1)( bza

abzp

* Mean: µ = (a+b)/2, variance: σ2 = (b–a) 2/12 Impulse (salt-and-pepper) noise

==

=otherwise0for for

)( bzPazP

zp b

a

* Either Pa or Pb is zero: unipolar noise * If Pa ≅ Pb: bipolar (salt-and-pepper) noise

- MATLAB rand, randn functions E.g.: N = rand(m); N = rand(m, n); m×m, m×n uniformly distributed random numbers with range [0, 1]

N = randn(m); N = randn(m, n); Normally distributed random number with mean=0 and variance=1 (Gaussian noise): ~N(0, 1)

Page 8: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-8

N = 5 + sqrt(2)*rand(m, n) ~N(5, 2) - MATLAB imnoise function: add noise to the image

E.g.: g = imnoise(f, 'gaussian', 0, 1) ~N(0, 1) Noise type: 'gaussian', 'localvar', 'poisson', 'salt & pepper', 'speckle'

((dd)) RReessttoorraattiioonn iinn tthhee pprreesseennccee ooff nnooiissee oonnllyyssppaattiiaall ffiilltteerriinngg - Degradation model:

g(x, y) = f(x, y) + η(x, y)

- Spatial noise filters: Mean filters * Arithmetic mean filter: reduce noise as a result of blurring

∑∈

=xySts

tsgmn

yxf),(

),(1),(ˆ

# Sxy: the m×n area for computing ),(ˆ yxf

Page 9: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-9

# MATLAB: f = imfilter(g, fspecial('average', [m n])) Padded with 0 * Geometric mean filter: reduce noise as a result of blurring

mn

Sts xy

tsgyxf

1

),(

),(),(ˆ

= ∏

# MATLAB: f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n)) log(a*b*c…) = log(a) + log(b) + log(c) + ...

* Harmonic mean filter: for pepper and Gaussian noise

∑∈

=

xySts tsg

mnyxf

),( ),(1),(ˆ

# MATLAB: f = m*n ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate') Order-statistics filters * Median filter: for bipolar or unipolar impulse noise

{ }),(median),(ˆ),(

tsgyxfxySts ∈

=

Page 10: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-10

# MATLAB: f = medfilt2(g, [m, n]) * Max and min filters: for salt or pepper noise

{ } { }),(min),(ˆ ,),(max),(ˆ),(),(

tsgyxftsgyxfxyxy StsSts ∈∈

== # MATLAB: f = ordfilt2(g, m*n, ones(m, n)), f = ordfilt2(g, 1, ones(m, n))

* Midpoint filter: combine order statistics and averaging filtering; work well for randomly distributed noise

{ } { }

+=

∈∈),(min ),(max

21),(ˆ

),(),(tsgtsgyxf

xyxy StsSts # MATLAB: f = 0.5 * (ordfilt2(g, m*n, ones(m, n)) + ordfilt2(g, 1, ones(m, n)))

* Alpha-trimmed mean filter

∑∈−

=xySts

r tsgdmn

yxf),(

),(1),(ˆ

# Remove d/2 lowest and highest gray-level values of g(s, t) # gr(s, t): the remaining mn–d pixels # For multiple types of noise, e.g., combination of salt-and-pepper and

Gaussian noise

Page 11: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-11

# MATLAB: f = imfilter(g, ones(m, n), 'replicate'); Sum of the pixels in Sxy for k = 1:d/2 f = f - ordfilt2(g, k, ones(m, n), 'replicate'); Subtract first d/2 pixels end for k = (m*n - d/2 + 1):m*n f = f - ordfilt2(g, k, ones(m, n), 'replicate'); Subtract last d/2 pixels end f = f/(m*n - d);

- Adaptive filters: Filters capable of adapting their behavior depending on the characteristics of the image area being filtered

E.g., adaptive, local noise reduction filter

[ ]LL

myxgyxgyxf −−= ),(),(),(ˆ2

2

σση

where ση

2 (a scalar) is estimated variance of the noise corrupting f(x, y); mL

Page 12: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-12

and σL2 are the local mean and variance of pixels in Sxy, respectively

* Behavior: 1. If ση

2 = 0, return g(x, y) 2. If σL

2 is high relative toση2 (i.e., edges), return a value close to g(x, y)

3. If ση2 = σL

2 (i.e., local area has same property as the overall image), return local arithmetic mean

* MATLAB nlfilter (nonlinear filtering) function: mean = imfilter(g, ones(m, n), 'replicate')/(m*n); mean: local mean var = nlfilter(g, [m n], 'std2(x).^2'); var: local variance f = g - (sn ./ (var+eps)) .* (g - mean); sn: variance of noise # Compute var using an inline function:

fun1 = inline('std2(x)^2'); var = nlfilter(g, [m n], fun1);

# Compute var using a function handle @: var = nlfilter(g, [m n], @fun2);

M-file fun2.m: function v = fun2(x)

Page 13: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-13

v = std2(x)^2; # Compute var using colfilt (column filtering: much faster):

fun3 = inline('std(x).^2') var = colfilt(g, [m n], 'sliding', fun3);

E.g., adaptive median filter * Denote:

zmin = minimum intensity value in Sxy zmax = maxmum intensity value in Sxy zmed = median of the intensity values in Sxy zxy = intensity value at coordinates (x, y)

* Adaptive median filter works at two levels, A and B (Smax: max allowed window size) Level A: If zmin < zmed < zmax, go to level B

Else increase the window size If window size ≤ Smax, repeat level A Else output zmed

Level B: If zmin < zxy < zmax, output zxy ( do not filter) Else output zmed ( filter by replacing the pixel with zmed)

Page 14: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-14

* Advantage over medfilt2: less blurring and distortion * MATLAB: supplement adpmedian.m

((ee)) MMoottiioonn bblluurr mmooddeelliinngg aanndd rreessttoorraattiioonn - Motion blur modelling:

Approximate the linear motion of the camera MATLAB:

Checkerboard

Motion blur

Motion blur with noise

f = checkerboard(8); Create “checkerboard” image PSF = fspecial('motion', 7, 45); Move 7 pixels along the 45 degrees line

Page 15: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-15

gb = imfilter(f, PSF, 'circular'); Degradation ('circular' reduces border effect) noise = imnoise(zeros(size(f)), 'gaussian', 0, 0.01); Gassian noise g = gb + noise; Add noise

- Restoration: Wiener filter Degradation model:

g(x, y) = h(x, y) * f (x, y) + η(x, y) Wiener filter: a statistical approach to seek an estimate f̂ that minimizes the statistical function (mean square error):

})ˆ{( 22 ffEe −= * Assumptions:

# Image and noise are uncorrelated # Image and/or noise has zero mean # Gray levels in the estimate are linear function of the levels in the

degraded image

Page 16: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-16

In frequency domain:

),(),(),(),(

),(),(),(ˆ

2

*

vuGvuSvuHvuS

vuSvuHvuF

f

f

+=

η

),(

),(/),(),(),(

2

*

vuGvuSvuSvuH

vuH

f

+=

η

),(

),(/),(),(),(

),(1

2

2

vuGvuSvuSvuH

vuHvuH

f

+⋅=

η

* H(u, v): degradation function * |H(u, v)|2 = H*(u, v)H(u, v) H*(u, v): complex conjugate * Sη(u, v) = |N(u, v)|2: the power spetrum of the noise

W(z)

f(x, y)

y)(x,f̂ e(x, y)

+

– g(x, y)

Page 17: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-17

* Sf(u, v) = |F(u, v)|2: the power spetrum of the undegraded image * Sη(u, v)/Sf(u, v): noise-to-signal power ratio

If Sη(u, v) = 0: inverse filter Approximation of the noise-to-signal power ratio

Sη(u, v)/Sf(u, v) ≅ R (= ηA/fA: constant)

,),(1 ∑∑=u v

A vuSMN ηη ∑∑=

u vfA vuS

MNf ),(1

* Hence, ),(),(

),(),(

1),(ˆ2

2

vuGRvuH

vuHvuH

vuF+

=

MATLAB * Wiener filter:

PSF = fspecial('motion', 7, 45); fr1 = deconvwnr(g, PSF);

* Parameterized Wiener filter (1): Sn = abs(fft2(noise)) .^2; fr1

Page 18: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-18

nA = sum(Sn(:))/prod(size(noise)); Sf = abs(fft2(f)) .^2; fA = sum(Sf(:))/prod(size(f)); R = nA/fA; fr2 = deconvwnr(g, PSF, R);

* Parameterized Wiener filter (2): NCORR = fftshift(real(ifft2(Sn))); ICORR = fftshift(real(ifft2(Sf))); fr3 = deconvwnr(g, PSF, NCORR, ICORR);

# NCORR: autocorrelation function of noise # ICORR: autocorrelation function of image

fr2

fr3

((ff)) GGeeoommeettrriicc ttrraannssffoorrmmaattiioonnss - Geometric spatial transformation

Page 19: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-19

An image f, defined over a (w, z) coordinate system, undergoes geometric distortion to produce image g, defined over a (x, y) coordinate system: (x, y) = T{(w, z)}

- Affine transform: scaling, rotation, translation, and shearing Note: in MATLAB the transformation matrix is on the right

[ ] [ ] [ ]

==

100

1 11

3231

2221

1211

tttttt

zwTzwyx

Identity: x = w y = z

=

100010001

I

Rotation (clockwise): x = wcosθ – zsinθ y = wsinθ + zcosθ

−=

1000cossin0sincos

θθθθ

R

Page 20: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-20

Scaling : x = Sxw y = Syz

=

1000000

y

x

SS

S

Horizontal shearing (x direction): x = w + αz y = z

=

10001001

αxS

Vertical shearing (y direction): x = w y = βw + z

=

10001001 β

yS

Translation: x = w + δ x y = z + δy

=1010001

yx

Tδδ

- Graylevel interpolation Transformation: scan each pixel of the output image, and compute the corresponding location in the input image using T–1{(x, y)}

Page 21: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-21

Geometric transformation results in noninteger coordinates: need to infer the graylevel

Nearest neighbor: g(x, y) = f(w1, z0) Bilinear interpolation * First, linear interpolation in the w (or x) direction

),()(),()(

),(),(

010001

0101

000

01

1

zwfwwzwfww

zwfwwwwzwf

wwwwp

−+−=−−

+−−

=

(x, y) (w, z)

(w0, z0) (w1, z0)

(w0, z1) (w1, z1)

g: f:

T–1

Page 22: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-22

),()(),()(

),(),(

110101

1101

010

01

1

zwfwwzwfww

zwfwwwwzwf

wwwwq

−+−=−−

+−−

=

* And then, linear interpolation in the z (or y) direction

qzzpzzqzzzzp

zzzzg )()( 01

01

0

01

1 −+−=−−

+−−

= Other interpolation methods: bicubic, bicubic smoother, stairstep …

- MATLAB point transform Create spatial transformation structure: tform = maketform(type, Transform_matrix)

Type: 'affine', 'projective', 'custom', 'box', 'composit' E.g.: WZ and XY are P×2 matrices of points, each row: (w, z) and (x, y) WZ = [1 1; 2 3; 5 7]; tform = maketform('affine', [2 0 0; 0 3 0; 0 0 1]); Scaling matrix XY = tformfwd(WZ, tform); Forward transform: XY = [2 3; 4 9; 10 21] WZ = tforminv(XY, tform); Inverse transform: WZ = [1 1; 2 3; 5 7]

Page 23: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-23

- MATLAB image transform x = pi/6; % Rotate 30 degrees R = [cos(x) sin(x) 0; -sin(x) cos(x) 0; 0 0 1]; % Rotation matrix tform = maketform('affine', R); [g xdata ydata] = imtransform(f, tform); figure, imshow(uint8(g), [ ], 'XData', xdata, 'YData', ydata), title('Image g'); impixelinfo, axis on, axis([xdata ydata]); Supplement: transform.m

((gg)) IImmaaggee rreeggiissttrraattiioonn - Image registration

Seek to aligh two images of the same scene Images are taken at different times, places, or using different acquisition instruments

Applications: align images acquired by different equipments, restoration of a transformed image, panorama (360° view: an

Page 24: (5) Image Restoration - nchu.edu.twweb.nchu.edu.tw/pweb/users/ykchan/lesson/6600.pdf · (5) Image Restoration - Image restoration Æ Recover an image that has been degraded using

5-24

unobstructed view extending in all directions, especially of a landscape) - MATLAB: cp2tform

Infer geometric transformation from control point pairs Select two sets of corresponding points in input and base images Establish the geometric transform between them base_points = [83 81; 450 56; 43 293; 249 392; 436 442]; input_points = [68 66; 375 47; 42 286; 275 434; 523 532]; tform = cp2tform(input_points, base_points, 'affine'); register = imtransform(input, tform); GUI to select control points: cpselect(input, base) * ⊕: add control points in both images * ⊕⊕: add a control point in one image and predict matches in another * Save control points: File Save Points to Workspace

- Supplement: panorama.ppt


Recommended