使用python并可能使用numpy,如何生成具有(x,y,pixelValue(x,y))格式的所有坐标的列表?我可以使用以下代码通过for循环实现此目的:
img = cv2.imread('messi5.jpg',0)
data = []
for x in range(img.shape[1]):
for y in range(img.shape[0]):
data.append((x, y, data[x, y]))
但是当我的图像包含约400万像素时,这样做会花费很长的时间。谢谢!
最佳答案
numpy.ndenumerate
将立即创建一个生成器。如果确实需要(???),则可以将其转换为列表。
>>> np.ndenumerate(np.eye(2))
<numpy.lib.index_tricks.ndenumerate at 0x20d485f8>
>>>for elem in np.ndenumerate(np.eye(2)):
... print elem
...
((0L, 0L), 1.0)
((0L, 1L), 0.0)
((1L, 0L), 0.0)
((1L, 1L), 1.0)
>>>list(np.ndenumerate(np.eye(2)))
[((0L, 0L), 1.0), ((0L, 1L), 0.0), ((1L, 0L), 0.0), ((1L, 1L), 1.0)]
关于python - 如何使用numpy从2D图像矩阵生成所有(x,y,像素值)元组的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38090056/