计算方差图像python

 

问题描述:

有没有一种简单的方法可以使用Python / NumPy /
Scipy在图像上计算运行方差过滤器?通过运行方差图像,我的意思是为图像中每个子窗口I计算sum((I-mean(I))^ 2)/ nPixels的结果。

由于图像很大(12000x12000像素),我想避免在格式之间转换数组的开销,以便能够使用其他库,然后再转换回去。

我想我可以通过使用类似的方法找到平均值来手动完成此操作

kernel = np.ones((winSize, winSize))/winSize**2
image_mean = scipy.ndimage.convolve(image, kernel)
diff = (image - image_mean)**2
# Calculate sum over winSize*winSize sub-images
# Subsample result

但是拥有Matlab的stdfilt-function这样的东西会更好。

谁能指出我具有这种功能并支持numpy数组的库的方向,还是暗示/提供了一种在NumPy / SciPy中实现此目的的方法?


我发现自己用这样的构造函数编写了很多类:class MyClass(object): def __init__(self, foo, bar, foobar=1, anotherfoo= ...