python - 如何使用numpy从2D图像矩阵生成所有(x,y,像素值)元组的列表?

标签 python opencv numpy scipy

使用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/

相关文章:

python - “ascii”编解码器无法解码字节(使用 django 时出现问题)

python - 什么是 OpenCV 中最好的头部级联分类器

python - 用于分配数组元素的 Numpy 语法

python - CSV 文件的词典列表

python - 如何向 _not_ 继承的 python *class* 添加属性?

python - 如何在Kafka中发布字典?

python - 使用 OpenCV 改进图像中的矩形轮廓检测

python - 如何将多个图像放入数组中?

python - Numpy apply_along_axis 函数

numpy - 从 Tensorflow 2.1 张量中每批处理提取一个元素