ノイズから信号を特徴付ける問題は簡単ではありません。あなたの質問から、最初の試みは二次統計を特徴付けることです.自然画像は、定義上、ホワイトノイズには存在しないピクセル間の相関を持つことが知られています。
フーリエ空間では、相関はエネルギー スペクトルに対応します。自然画像では 1/f^2 程度減少することが知られています。したがって、ノイズを定量化するには、画像のスペクトルの相関係数を両方の仮説 (フラットと 1/f^2) で計算して、係数を抽出することをお勧めします。
あなたを起動するためのいくつかの機能:
import numpy
def get_grids(N_X, N_Y):
from numpy import mgrid
return mgrid[-1:1:1j*N_X, -1:1:1j*N_Y]
def frequency_radius(fx, fy):
R2 = fx**2 + fy**2
(N_X, N_Y) = fx.shape
R2[N_X/2, N_Y/2]= numpy.inf
return numpy.sqrt(R2)
def enveloppe_color(fx, fy, alpha=1.0):
# 0.0, 0.5, 1.0, 2.0 are resp. white, pink, red, brown noise
# (see http://en.wikipedia.org/wiki/1/f_noise )
# enveloppe
return 1. / frequency_radius(fx, fy)**alpha #
import scipy
image = scipy.lena()
N_X, N_Y = image.shape
fx, fy = get_grids(N_X, N_Y)
pink_spectrum = enveloppe_color(fx, fy)
from scipy.fftpack import fft2
power_spectrum = numpy.abs(fft2(image))**2
詳細については、この素晴らしい論文をお勧めします。