所以我正在做这个课程,还有一个练习,我必须使用数组的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过滤器来遍历这个数组?
发布于 2018-09-03 21:00:31
skimage包提供了一个函数,它可以执行您想要的操作:
from skimage import transform
img_rescaled = transform.rescale(img,1/block)也许您正在寻找一个专门使用Numpy的解决方案,在这种情况下,您应该查看该函数是如何在skimage模块中编码的
https://stackoverflow.com/questions/52149917
复制相似问题