图像噪声估计/噪声测量 [英] Noise Estimation / Noise Measurement in Image
问题描述
我想估计图像中的噪点。
I want to estimate the noise in an image.
让我们假设一个Image + White Noise的模型。
现在我想估计噪声方差。
Let's assume the model of an Image + White Noise. Now I want to estimate the Noise Variance.
我的方法是计算图像的局部方差(3 * 3到21 * 21块)然后找到局部方差相当恒定的区域(通过计算局部方差矩阵的局部方差)。
我假设这些区域是平坦的,因此方差几乎是纯粹的噪音。
My method is to calculate the Local Variance (3*3 up to 21*21 Blocks) of the image and then find areas where the Local Variance is fairly constant (By calculating the Local Variance of the Local Variance Matrix). I assume those areas are "Flat" hence the Variance is almost "Pure" noise.
然而我没有得到恒定的结果。
Yet I don't get constant results.
有更好的方式吗?
谢谢。
PS
我不能假设任何关于图像但是独立噪声(对于真实图像不是这样,但我们假设它)。
P.S. I can't assume anything about the Image but the independent noise (Which isn't true for real image yet let's assume it).
推荐答案
您可以使用以下方法估算噪声方差(此实现仅适用于灰度图像):
You can use the following method to estimate the noise variance (this implementation works for grayscale images only):
def estimate_noise(I):
H, W = I.shape
M = [[1, -2, 1],
[-2, 4, -2],
[1, -2, 1]]
sigma = np.sum(np.sum(np.absolute(convolve2d(I, M))))
sigma = sigma * math.sqrt(0.5 * math.pi) / (6 * (W-2) * (H-2))
return sigma
参考:J.Immerkær,Fast Noise Variance Estimation,Computer Vision and Image Understanding,Vol。 64,第2期,第300-302页,1996年9月[ PDF ]
Reference: J. Immerkær, "Fast Noise Variance Estimation", Computer Vision and Image Understanding, Vol. 64, No. 2, pp. 300-302, Sep. 1996 [PDF]
这篇关于图像噪声估计/噪声测量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!