首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型阵列的快速均值和标准差计算

大型阵列的快速均值和标准差计算
EN

Stack Overflow用户
提问于 2022-02-22 19:16:11
回答 1查看 117关注 0票数 1

我正在做一些图像处理,我需要做的事情之一是计算5x5平方像素的平均偏差和标准差,并将这些值分配给一个与5x5平方的中心像素相同的索引的数组(平均值和标准差可以用于独立的2D阵列)。我现在的做法是:

代码语言:javascript
复制
for i in range(2, num_rows+2, 1):
    for j in range(2, num_cols+2, 1):
        #enter pixel values of 5x5 cluster into a list
        pixel_list = [padded_grey[i-2,j-2],padded_grey[i-2,j-1],padded_grey[i-2,j],padded_grey[i-2,j+1],padded_grey[i-2,j+2],padded_grey[i-1,j-2],padded_grey[i-1,j-1],padded_grey[i-1,j],padded_grey[i-1,j+1],padded_grey[i-1,j+2],padded_grey[i,j-2],padded_grey[i,j-1],padded_grey[i,j+1],padded_grey[i,j+2],padded_grey[i+1,j-2],padded_grey[i+1,j-1],padded_grey[i+1,j],padded_grey[i+1,j+1],padded_grey[i+1,j+2],padded_grey[i+2,j-2],padded_grey[i+2,j-1],padded_grey[i+2,j],padded_grey[i+2,j+1],padded_grey[i+2,j+2],padded_grey[i,j]]

        #calculate mean and standard deviation of values in list and enter into index of central pixel
        mean_vals[i-2,j-2] = np.mean(pixel_list)
        stddev_vals[i-2,j-2] = np.std(pixel_list)

for循环被2个索引移位的原因是数组padded_grey为零填充,以防止在接近数组边缘时出现“超出范围”的错误。当然,这需要很长时间才能完成执行,因为我必须逐个像素地遍历整个1024x1280数组。

有人能给我一些建议吗?我可以把它优化成跑得更快吗?提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 19:20:02

使用sliding_window_view

代码语言:javascript
复制
window_view = np.lib.stride_tricks.sliding_window_view(pixel_array, (5, 5))

window_view_mean = window_view.mean(axis=(2, 3))
window_view_std = window_view.std(axis=(2, 3))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71227099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档