如何提高此功能的速度?
def foo(mri_data, radius):
mask = mri_data.copy()
ny = len(mri_data[0,:])
nx = len(mri_data[:])
for y in xrange(0, ny):
for x in xrange(0, nx):
if (mri_data[x-radius:x+radius,y-radius:y+radius] != 1.0).all():
mask[x,y] = 0.0
return mask.copy()
它以 numpy 数组的形式接收图像切片。遍历每个像素并测试围绕该像素的边界框。如果框中没有值等于 1,则我们通过将其设置为 0 来丢弃该像素。
有人告诉我我可以使用numpy.convolve
,但我不确定这有什么关系。
编辑:图像值在二进制范围内,因此最小值为 0.0,最大值为 1.0。介于 ex 之间的值:0.767。