python-np数组,包含图像中的像素(R、G、B、X、Y)

python-np数组,包含图像中的像素(R、G、B、X、Y),python,image,python-imaging-library,pixel,np,Python,Image,Python Imaging Library,Pixel,Np,我目前正在尝试获取一个像素列表,其中包含它们的rgb以及每个像素的x和y值。我现在可以得到所有像素的扁平列表 import Image im = Image.open('Lenna.png') pixels = np.array(im.getdata()) 这将为您提供一个RGB数据的平面列表,如下所示: [(226,137,125),(226,137,125),(223,137,133),(223,136,128), (226, 138, 120), (226, 129, 116), (22

我目前正在尝试获取一个像素列表,其中包含它们的rgb以及每个像素的x和y值。我现在可以得到所有像素的扁平列表

import Image
im = Image.open('Lenna.png')
pixels = np.array(im.getdata())
这将为您提供一个RGB数据的平面列表,如下所示:

[(226,137,125),(226,137,125),(223,137,133),(223,136,128), (226, 138, 120), (226, 129, 116), (228, 138, 123), (227, 134, 124), (227140127),(225136119),(228135126),(225134121)


但是,这不会给我任何关于每个像素的x和y坐标的信息。我能得到什么建议吗?

如果你想过滤像素,你可以查看

如果需要所有像素的坐标,以下代码可能会有所帮助:

from PIL import Image
import numpy as np


img = Image.open('/your_pic.png')
width, height = img.size
x, y = np.meshgrid(range(width), range(height))

coordinate = np.concatenate([img.getdata(), x.reshape(-1, 1), y.reshape(-1, 1)], axis=1)
然后你会得到一个带[R,G,B,Alpha,X,Y]的数组

array([[  0,   0,   0, 255,   0,   0],
       [  0,   0,   0, 255,   1,   0],
       [  0,   0,   0, 255,   2,   0],
       ...,
       [  0,   0,   0, 255, 663, 665],
       [  0,   0,   0, 255, 664, 665],
       [  0,   0,   0, 255, 665, 665]])

这是否回答了你的问题?这是一种非常不寻常的方法。通常你知道坐标是通过索引隐式地通过索引进入数组的。为什么你想要显式的坐标-接下来你打算怎么处理它们?