python 三维矩阵怎么平滑其值_Python中值滤波在三维阵列中的应用

我在这个论坛上看到了一些关于应用移动窗口中值滤波的讨论,但我的应用程序有一个特殊之处。在

我有一个三维数组的维数750x12000x10000,我需要应用中值滤波器来生成一个二维数组(12000x10000)。为此,每个中值计算应考虑一个固定的邻域窗口(通常100x100)和所有z轴值。矩阵中有一些零值,在计算中值时不应考虑这些零值。要处理实际数据,我使用numpy.memmap:fp = np.memmap(filename, dtype='float32', mode='w+', shape=(750, 12000, 10000))

为了处理memmap存储的真实数据,我的输入数组被细分为几个块,但是为了提高测试的速度,我将在本文中使用一个简化的数组(11,200,300)和一个更小的窗口(11,5,5)或(11,50,50),我希望得到一个结果矩阵(200,300):

^{pr2}$

首先,我尝试过蛮力方法,但是它的速度非常慢(即使对于小数组):start = timer()

for l in range(0, ysize):

i_l = max(0, l - w_size/2)

o_l = min(ysize, i_l+w_size/2)

for c in range(0, xsize):

i_c = max(0, c - w_size/2)

o_c = min(xsize, i_c+w_size/2)

values = m_in[:, i_l:o_l, i_c:o_c]<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值