ee 4780 bilateral filter. bahadir k. gunturk2 bilateral filter intensity (range) proximity spatial...

19
EE 4780 Bilateral Filter

Upload: lorena-cousens

Post on 15-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

EE 4780

Bilateral Filter

Page 2: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 2

Bilateral Filter

22 22 / 2( ) ( ) / 21ˆ( ) ( )dr

x Ny xI y I x

y x N

I x e e I yK

Intensity (range) proximity

Spatial (domain) proximity

N is a fixed value used to define the spatial neighborhood of the filter

K is the normalization constant

22 22 / 2( ) ( ) / 2 dr

x Ny xI y I x

y x N

K e e

Page 3: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 3

Bilateral Filter – Matlab implementationn=1:1:500; % Generate a vector from 1 to 500; the increment is 1.

I0=zeros(size(n)); % Generate a vector of zeros; the size of the vector is equal to the size of n.I0(1:250)=15; I0(251:end)=10; % Set the first 250 values to 15, and the rest to 10.

I = I0 + 0.5*randn(size(I0)); % 0.5 is the standard deviation of the noisefigure; subplot(2,1,1); plot(n,I0); axis ([190 310 6 18]); title('Original signal');subplot(2,1,2); plot(n,I); axis ([190 310 6 18]); title('Noisy signal');

Page 4: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 4

Bilateral Filter – Matlab implementationsigma_d=10;

N=round(4*sigma_d); % N determines the spatial neighborhood

sigma_r=1.3;

d = -N:1:N;

weights_d = exp(-d.*d/(2*sigma_d*sigma_d));

22 22 / 2( ) ( ) / 21ˆ( ) ( )dr

x Ny xI y I x

y x N

I x e e I yK

The weights depend on the spatial distance (to the center pixel x) only; therefore, it is calculated once and saved.

Page 5: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 5

Bilateral Filter – Matlab implementationsigma_d=10;

N=round(4*sigma_d); % N determines the spatial neighborhood

sigma_r=1.3;

d = -N:1:N;

weights_d = exp(-d.*d/(2*sigma_d*sigma_d));

x=260; % An example

pixels = I(x-N:x+N); % Put the pixels within the neighborhood of the center pixel into a vector.

weights = weights_d .* exp(-(pixels-I(x)).*(pixels-I(x))/(2*sigma_r*sigma_r)) + 0.0001;

weights = weights./sum(weights);

22 22 / 2( ) ( ) / 21ˆ( ) ( )dr

x Ny xI y I x

y x N

I x e e I yK

Add a small number in case weights=0;

Page 6: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 6

Bilateral Filter – Matlab implementationsigma_d=10;

N=round(4*sigma_d); % N determines the spatial neighborhood

sigma_r=1.3;

d = -N:1:N;

weights_d = exp(-d.*d/(2*sigma_d*sigma_d));

x=260;

pixels = I(x-N:x+N); % Put the pixels within the neighborhood of the center pixel into a vector.

weights = weights_d .* exp(-(pixels-I(x)).*(pixels-I(x))/(2*sigma_r*sigma_r)) + 0.0001;

weights = weights./sum(weights); % Normalize the weights so that its sum is equal to 1.

I_output(x) = sum(weights.*pixels);

22 22 / 2( ) ( ) / 21ˆ( ) ( )dr

x Ny xI y I x

y x N

I x e e I yK

Page 7: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 7

Bilateral Filter

figure; plot([x-N:x+N],weights)

Page 8: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 8

Bilateral Filter – Matlab implementationd = -N:1:N;

weights_d = exp(-d.*d/(2*sigma_d*sigma_d));

% Repeat for all pixels

I_output = I;

for i=1+N:length(I)-N, % Be careful with the borders; do not exceed the dimensions.

pixels = I(i-N:i+N);

weights = weights_d .* exp(-(pixels-I(i)).*(pixels-I(i))/(2*sigma_r*sigma_r)) + 0.0001;

weights = weights./sum(weights);

I_output(i) = sum(weights.*pixels);

end

figure; plot(n,I_output);

Page 9: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 9

Bilateral Filter

1.3r

Input

Gaussian

Bilateral10d

10d

Page 10: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 10

Bilateral Filter vs. Gaussian LPF

MSE=49.8

MSE=30.3

MSE=42.5

sigma_d=10MSE=99.57

MSE=100.0

2d

10r

30r

50r

10n

Gaussian

Page 11: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 11

Wiener Filter

WXY

YXwx

x22

2

ˆ

Wiener Filter

Original

imageNoiseNoisy

image

Noise varianceSignal variance

When sigma_x << sigma_w, (noise is very large), X goes to 0.When sigma_x >> sigma_w, (noise is very small), X goes to Y.

Page 12: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 12

Wiener Filter

222ˆ wx y

2x is estimated by

Since variance is nonnegative, it is modified as

],0max[ˆ 222wx y

2 2 22

1ˆ max[0, ]x i w

i

yN

Estimate signal variance locally:

N

N

Estimate manually by looking at the variance in a smooth region.

Page 13: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 13

Wiener Filter

Noisy, =10 Denoised (3x3neighborhood)Mean Squared Error is 56

wiener2 in Matlab

Page 14: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 14

Image Enhancement

1 1 1

1 8 1

1 1 1

This is an high-pass filter.It removes low-frequency components.

Page 15: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 15

Image Enhancement

High-boost or high-frequency-emphasis filter Sharpens the image but does not remove the low-frequency

components unlike high-pass filtering

Page 16: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 16

Image Enhancement

High-boost or high-frequency-emphasis filter High pass = Original – low pass High boost = A*(Original) + High pass

Part of the low-frequency components are added back to the high frequency components

Page 17: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 17

Image Enhancement

1 1 1

1 8 1

1 1 1

A high-pass filter A high-boost filter

1 1 1

1 9 1

1 1 1

Page 18: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 18

Image Enhancement

High-boost or high-frequency-emphasis filter

Page 19: EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define

Bahadir K. Gunturk 19

Spatial Filtering