因此,我正在执行此课程,并且在此练习中,我必须使用数组的3x3区域模糊图像,并将所有值换成平均值。所以我写了这个我知道仍然无法完全使用的功能:
def replace_avg(img, block=3):
x_dim, y_dim = img.shape
for row in range(1,x_dim-block+2,3):
for col in range(1,y_dim-block+2,3):
img[row-(block-2):row+(block-1),col-(block-2):col+(block-1)] = np.average(img[row-(block-2):row+(block-1),col-(block-2):col+(block-1)])
return img
我的问题是,使用numpy,使用3x3过滤器循环遍历此数组是否有更有效的方法?
答案 0 :(得分:0)
skimage软件包提供的功能可以完全满足您的要求:
from skimage import transform
img_rescaled = transform.rescale(img,1/block)
也许您正在寻找专门使用Numpy的解决方案,在这种情况下,您应该查看skimage模块中该函数的编码方式