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

## Presentation on theme: "EE 4780 Bilateral Filter. Bahadir K. Gunturk2 Bilateral Filter Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define."— Presentation transcript:

EE 4780 Bilateral Filter

Bahadir K. Gunturk2 Bilateral Filter 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

Bahadir K. Gunturk3 Bilateral Filter – Matlab implementation n=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 noise figure; 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');

Bahadir K. Gunturk4 Bilateral Filter – Matlab implementation sigma_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)); The weights depend on the spatial distance (to the center pixel x) only; therefore, it is calculated once and saved.

Bahadir K. Gunturk5 Bilateral Filter – Matlab implementation sigma_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); Add a small number in case weights=0;

Bahadir K. Gunturk6 Bilateral Filter – Matlab implementation sigma_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);

Bahadir K. Gunturk7 Bilateral Filter figure; plot([x-N:x+N],weights)

Bahadir K. Gunturk8 Bilateral Filter – Matlab implementation d = -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);

Bahadir K. Gunturk9 Bilateral Filter Input Gaussian Bilateral

Bahadir K. Gunturk10 Bilateral Filter vs. Gaussian LPF MSE=49.8 MSE=30.3 MSE=42.5 sigma_d=10 MSE=99.57 MSE=100.0 Gaussian

Bahadir K. Gunturk11 Wiener Filter Original image Noise Noisy image Noise variance Signal 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.

Bahadir K. Gunturk12 Wiener Filter is estimated by Since variance is nonnegative, it is modified as Estimate signal variance locally: N N Estimate manually by looking at the variance in a smooth region.

Bahadir K. Gunturk13 Wiener Filter Noisy,  =10 Denoised (3x3neighborhood) Mean Squared Error is 56 wiener2 in Matlab

Bahadir K. Gunturk14 Image Enhancement This is an high-pass filter. It removes low-frequency components.

Bahadir K. Gunturk15 Image Enhancement High-boost or high-frequency-emphasis filter  Sharpens the image but does not remove the low-frequency components unlike high-pass filtering

Bahadir K. Gunturk16 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

Bahadir K. Gunturk17 Image Enhancement A high-pass filter A high-boost filter

Bahadir K. Gunturk18 Image Enhancement High-boost or high-frequency-emphasis filter