gpt4 book ai didi

python - 基于另一个数组中的信息对 NumPy 数组进行操作

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:29 26 4
gpt4 key购买 nike

我对图像进行了均值漂移分割并得到了标签数组,其中每个点值对应于它所属的片段。

labels = [[0,0,0,0,1],
[2,2,1,1,1],
[0,0,2,2,1]]

另一方面,我有相应的grayScale图像,想对每个区域独立进行操作。

img = [[100,110,105,100,84],
[ 40, 42, 81, 78,83],
[105,103, 45, 52,88]]

比方说,我想要每个区域的灰度值之和,如果它小于 200,我想将这些点设置为 0(在这种情况下,区域 2 中的所有点),我该怎么做与 NumPy ?我确信有比我已经开始的实现更好的方法,它包括很多很多 for 循环和临时变量...

最佳答案

查看 numpy.bincount 和 numpy.where,这应该可以帮助您入门。例如:

import numpy as np
labels = np.array([[0,0,0,0,1],
[2,2,1,1,1],
[0,0,2,2,1]])
img = np.array([[100,110,105,100,84],
[ 40, 42, 81, 78,83],
[105,103, 45, 52,88]])

# Sum the regions by label:
sums = np.bincount(labels.ravel(), img.ravel())

# Create new image by applying threhold
final = np.where(sums[labels] < 200, -1, img)
print final
# [[100 110 105 100 84]
# [ -1 -1 81 78 83]
# [105 103 -1 -1 88]]

关于python - 基于另一个数组中的信息对 NumPy 数组进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695248/

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