从Python中的位图存储黑色像素的(x,y)坐标

时间:2018-08-21 10:04:35

标签: python list bitmap tuples coordinates

我当前正在尝试存储黑白图像的xy坐标。我想要一个类似的列表

 black_pixel_coordinates = [(1,1), (5,20), (3,90), ...] 

我当前的操作方式无效。图片大小均为150x150。这是我的代码:

from PIL import Image
map_foto = Image.open(wk_dir+"/"+map_name)
map_bit=map_foto.tobitmap()
pixels = list(map_bit.getdata())

    for y in range(150):
        for x in range(150):
            if pixels[x,y] == (0, 0, 0):
               pixels = black_pixels
               black_pixel_coordinates.append((x,y))

以某种方式不起作用并引发错误:

TypeError: list indices must be integers or slices, not tuple

我是编程新手,希望这里的任何人都可以帮助我解决该问题。谢谢!

1 个答案:

答案 0 :(得分:0)

现在找到了解决方案:

arr = np.asarray(map_bit)
black_pixels = np.array(np.where(arr == 0))
black_pixel_coordinates = list(zip(black_pixels[0],black_pixels[1]))