首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何优化numpy均值窗口

如何优化numpy均值窗口
EN

Stack Overflow用户
提问于 2018-09-29 07:06:20
回答 1查看 80关注 0票数 0

我正在尝试得到一个新的栅格,循环遍历所有数组,并使用25x25像素的搜索窗口。我想知道你是否知道更好的方法,因为我的方法花费了太多的时间。

代码语言:javascript
复制
import sys
import os
import numpy as np
import math

from osgeo import gdal, osr, gdal_array, gdalnumeric
from osgeo.gdalnumeric import *

numpy.warnings.filterwarnings('ignore')

def mean_neighbors(M,x,y,w=1):
    l = []
    for i in range(max(0,x-w), x+(w+1)):
        for j in range(max(0,y-w), y+(w+1)):
            try:
                t = M[i][j]
                l.append(t)
            except IndexError:
                pass
    return np.mean(l)

raster_file = gdal.Open('image.tif', gdal.GA_ReadOnly)
rst         = gdalnumeric.BandReadAsArray(raster_file.GetRasterBand(1))

cob = np.zeros(rst.shape)

for i in range(rst.shape[0]):
    for j in range(rst.shape[1]):
        cob[i][j] = mean_neighbors(rst, i, j, 25) # want to optimize this function
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-29 08:05:41

移动窗口均值是一个非常常见的函数,你不需要自己编写。这里有两个您可以使用的快速实现:

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52563621

复制
相关文章

相似问题

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