150 likes | 267 Vues
DCSP-18. Jianfeng Feng Department of Computer Science Warwick Univ., UK Jianfeng.feng@warwick.ac.uk. Norbert Wiener. The RGB format stores three color values, R, G and B, for each pixel. RGB = imread(‘bush.png'); size(RGB) ans = 1500 1200 3 imshow(RGB).
E N D
DCSP-18 Jianfeng Feng Department of Computer Science Warwick Univ., UK Jianfeng.feng@warwick.ac.uk
The RGB format stores three color values, R, G and B, for each pixel. RGB = imread(‘bush.png'); size(RGB) ans = 1500 1200 3 imshow(RGB)
Wiener Filter Recorded signal x(n,m) = s(n,m) +x(n,m) for example, an image of 1500 X1200 True Signal noise
RGB = imread(‘bush.png'); I = rgb2gray(RGB); J = imnoise(I,'gaussian',0,0.005); figure, imshow(I), figure, imshow(J)
To find a constant a such that E ( a(m,n) x(m,n) – s(m,n) ) 2 as small as possible y(m,n) = a(m,n) x(m,n) Different from the filter before, a(m,n) depends on (m,n) : Adapted filter
The quanttity above is minimized if the derivative of it with respect to a is zero
We assume that Es=0 Ex=0 and S, x are independent
Algorithm • wiener2 lowpass-filters an intensity image that has been degraded by constant power additive noise. • wiener2 uses a pixelwise adaptive Wiener method based on statistics estimated from a local neighborhood of each pixel.
wiener2 estimates the local mean and variance around each pixel where summation is over an area of N and M 1 X 1 area (N=1,M=1)
The filtered output is given by Note that the coefficient a depends on the position
RGB = imread(‘bush.png'); I = rgb2gray(RGB); J = imnoise(I,'gaussian',0,0.005); K = wiener2(J,[5 5]); figure, imshow(J), figure, imshow(K)
How to implement Wiener filter in one dimension? Our Wiener filter depends on only the current input, more generally we could develop an ARMA filter which is called Kaman filter and is widely used in many areas