我试图获取图像每个像素的局部标准差。这意味着对于每个像素,我想计算其值及其邻居值的标准差。我用了this http://docs.scipy.org/doc/numpy/reference/routines.statistics.html图书馆
我开发了以下代码:
def stdd(image, N):
width = image.shape[0]
heigth = image.shape[1]
desv = np.zeros((width,heigth))
for i in range (width):
for j in range (heigth):
if i < N :
mini = 0
else :
mini = i - N
if (i+N) > width :
maxi = width
else :
maxi = N + i
if j < N :
minj = 0
else :
minj = j - N
if (j+N) > heigth :
maxj = heigth
else :
maxj = N + j
window = image[mini:maxi,minj:maxj]
desv[i,j] = window.std()
return desv
其中 N 是每个像素的局部矩阵的大小,图像是 numpy.array() 图像
我的代码的问题是处理它需要太多时间,我想知道是否有一个已经定义的函数可以优化它
您可以尝试以下方法
from scipy.ndimage import generic_filter
import numpy as np
generic_filter(img, np.std, size=3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)