这是我的代码。我不想获得像素值低于210的所有坐标,因为我想对它们执行一些操作,并可能根据操作结果调整条件。
filename = "/home/User/PycharmProjects/Test/files/1366-000082.png"
image = Image.open(filename)
image_data = np.asarray(image, dtype='int64')
def get_image_data():
for row in image_data:
for cell in row:
if condition:
# I need only coordinate of cell here
所以我再次意识到argwhere函数。但这只会让我得到所有坐标。但是我可能想在循环中的某个位置更改该条件。
这有可能吗?
否则,我必须使用Pillow,但是循环会慢10倍。
答案 0 :(得分:1)
您可以使用enumerate()获取值索引:
arrows
,也许您应该将image_data传递给get_image_data方法
答案 1 :(得分:0)
您看过用口罩吗?就像使用numpy数组的内置函数一样,它将使您的生活变得更加简单和快捷,而不必遍历整个过程。
以您为例:
A = np.random.randint(1, 500, (100,100))
Mask = A < 210
这将为您提供一个True / False值矩阵,您实际上可以根据需要查询和调整条目。我知道您不想处理所有坐标,但这比遍历像素值要快得多。
希望对您有帮助