gpt4 book ai didi

python - 使用 dask 阵列去除坏像素

转载 作者:行者123 更新时间:2023-12-01 01:48:56 25 4
gpt4 key购买 nike

我有一个非常大的 4 维数据集,其中最后两个维度是在图像检测器上拍摄的图像。该检测器上的一些像素不起作用,这些坏像素的值为 0。我想在后处理中将这些像素的值设置为其邻居的中值。数据集范围从 8 GB 到可能 TB 大小,因此我想使用 dask 数组,因为我可以将坏点去除与其他处理步骤链接在一起。

找到坏点很容易,但我不确定如何最好地获得邻居的中值。

最小示例:

import numpy as np
import dask.array as da

data = np.random.randint(10, 50, size=(10, 10, 20, 20))
data[:, :, 2, 7] = 0
data[:, :, 9, 3] = 0
dask_array = da.from_array(data, chunks=(5, 5, 5, 5))
dask_array_mean = dask_array.mean(axis=(0, 1))
dead_pixels = dask_array_mean == 0

# Some kind of processing

dask_array_without_dead_pixels = dask_array + dead_pixel_values_array

所以我的问题是:如何获得dead_pixel_values_array?或者其他一些去除坏点的巧妙方法?

最佳答案

这是 dask 数组的区域中位数的实现:https://dask-ndfilters.readthedocs.io/en/latest/dask_ndfilters.html#dask_ndfilters.median_filter

如果您想要更通用的东西,或者不想安装 dask_ndfilters,您应该阅读 map_overlap它允许您访问来自相邻 block 的每个 block 周围的数据,从而允许您进行所需的计算。

关于python - 使用 dask 阵列去除坏像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50934784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com