gpt4 book ai didi

python - 如何扩展/扩张一个numpy数组?

转载 作者:行者123 更新时间:2023-12-04 01:42:38 27 4
gpt4 key购买 nike

我正在执行图像分析并以 bool 值的形式生成种子 array :

import numpy as np

# Example output array
a = np.array([[False, False, False], [False, True, False], [False, False, False]])

>>> a
array([[False, False, False],
[False, True, False],
[False, False, False]])

由于我想对 True周围的区域做后续分析。值,我想扩展它(按一定数量,比如像素)。这将导致以下结果:

>>> a
array([[False, True, False],
[True, True, True],
[False, True, False]])

有没有 function或解决我的“径向膨胀”问题的简单方法?

提前致谢,
烧烤架

最佳答案

解决方案 scipy.signal.convolve2d :

import numpy as np
from scipy.signal import convolve2d


# Example input
# [[False False False False False]
# [False False True True False]
# [False False False False False]
# [False False False False False]
# [False False False False True]]
in_array = np.zeros((5, 5), dtype=bool)
in_array[1,2] = True
in_array[1,3] = True
in_array[4,4] = True

# Kernel: here you should define how much the True "dilates"

kernel = np.asarray([[False, True, False],
[True, True, True],
[False, True, False]])

# Convolution happens here
# Convolution is not possible for bool values though, so we convert to int and
# back. That works because bool(N) == True if N != 0.
result = convolve2d(in_array.astype(int), kernel.astype(int), mode='same').astype(bool)
print(result)

# Result:
# [[False False True True False]
# [False True True True True]
# [False False True True False]
# [False False False False True]
# [False False False True True]]

关于python - 如何扩展/扩张一个numpy数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735991/

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