有没有一种简单的方法可以使用Python/NumPy/Scipy计算图像上的运行方差滤镜?通过运行方差图像,I表示计算图像中每个子窗口I的和((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
Run Code Online (Sandbox Code Playgroud)
但是从matlab获得类似stdfilt-function的东西要好得多.
任何人都可以指向具有此功能的库的方向并支持numpy数组,或提示/提供在NumPy/SciPy中执行此操作的方法吗?