在numpython中的ndarray中查找最近的值X

2024-09-19 21:03:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个在0到255之间的二维矩阵的数据数组。让我们把它命名为img。此外,我得到了0到255之间的值x,例如120。我想创建矩阵dist_img,它计算到最近值x或更低的距离。所以我想要这样的东西:

x = 120
img = [[100, 120, 130],
       [110, 140, 160],
       [130, 150, 170]]
some_function(img, x)

得到这样的东西

dist_img = [[0, 0, 1],
            [0, 1, 2],
            [1, 2, 3]]

如果我能达到顶峰,我希望在出租车几何中有距离,但欧几里得几何会起作用。 对不起,英语不好,但我希望一切都可以理解


Tags: 数据距离imgdistfunction矩阵some数组
1条回答
网友
1楼 · 发布于 2024-09-19 21:03:54

制作与条件匹配的值的掩码,然后使用^{}制作距离贴图:

import numpy as np
from scipy.ndimage.morphology import distance_transform_cdt

x = 120
img = np.array([[100, 120, 130],
                [110, 140, 160],
                [130, 150, 170]])
m = img <= x
d = distance_transform_cdt(~m, 'taxicab')
print(d)
# [[0 0 1]
#  [0 1 2]
#  [1 2 3]]

相关问题 更多 >