Transcript Neuronal Computation Using High Order Statistics
DCSP-22
Jianfeng Feng
Department of Computer Science Warwick Univ., UK [email protected]
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)
Wiener Filter
Recorded signal x(n,m) = s(n,m) + x (n,m) True Signal noise for example, an image of 1500 X1200
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
) 2 ( 2
E a x
2 2
axs
s
2 ) 2
a Ex
2 2
aExs
Es
2 The quanttity above is minimized if the derivative of it with respect to a is zero 2
aEx
2
a
Exs Ex
2 2
Exs
Es
2 0 x
E
x )
s
2
We assume that Es=0 E x =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 1
NM
, 2 2 1
NM
, 2 ( , 1 2 ) 2 ( , 1 2 ) 2 where summation is over an area of N and M 1 X 1 area (N=1,M=1)
The filtered output is given by ( , 1 2 ) 2 2
E
x 2 ( ( , 1 2 ) ) 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