我正在寻找一种有效的方法来计算一个移动的三维中值滤波器,其大小为mnp on一个大型三维点云(x,y,z)的第四维“U”。这与Nd图像的典型过滤器有两个不同之处:(1)每个图像体素中可能有多个值(多个点落在该体素中)和(2)某些体素可以为空,并应替换为其周围框中的中值。在
我已经收敛到下面的方法,但是当点数增加时,这种方法似乎不那么有效(虽然它在增加框平均窗口时表现更好)。。。在import itertools
import numpy as np
import time
import sys
npts=10**5 # Number of points in the cloud
L=100 # Dimension of the domain (grid)
filt_size=[1,1,1] # extent of the median filter on each size of the grid voxel
# Generate random points and scalar u
x=np.random.random(npts)*L
y=np.random.random(npts)*L
z=np.random.random(npts)*L
u=np.random.random(npts)
# Initiate time clock
t0=time.clock()
# Take grid position of points
x=np.uint32(np.round(x))
y=np.uint32(np.round(y))
z=np.uint32(np.round(z))
#