1 / 19

EE 4780

EE 4780. Bilateral Filter. Bilateral Filter. K is the normalization constant. Intensity (range) proximity. Spatial (domain) proximity. N is a fixed value used to define the spatial neighborhood of the filter. Bilateral Filter – Matlab implementation.

Download Presentation

EE 4780

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE 4780 Bilateral Filter

  2. Bilateral Filter K is the normalization constant Intensity (range) proximity Spatial (domain) proximity N is a fixed value used to define the spatial neighborhood of the filter

  3. 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');

  4. 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.

  5. 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;

  6. 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);

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

  8. 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);

  9. Bilateral Filter Input Gaussian Bilateral

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

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

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

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

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

  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

  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

  17. Image Enhancement A high-pass filter A high-boost filter

  18. Image Enhancement • High-boost or high-frequency-emphasis filter

  19. Spatial Filtering

More Related