python - Numpy 图像数组 : How to efficiently switch from RGB to Hex

标签 python arrays image numpy

我一直在使用嵌套的 for 循环将 RGB 图像转换为十六进制值的图像数组,但它对于大图像来说太慢了。有谁知道可以帮助我从 RGB 切换回 HEX 的快速方法和/或库?

编辑: @ragingSloth

这是我想出的,但对于我需要的来说太慢了:

def rgb_to_hex(array):
    (x, y, z) = array.shape
    for v in range(0, x):
        for u in range(0, y):
            array[v, u] = int('%02x%02x%02x' % (array[v, u, 0], array[v, u, 1], array[v, u, 2]))

最佳答案

利用beaker的思路,你也可以去掉双for循环:

def tohex(array):
    array = np.asarray(array, dtype='uint32')
    return ((array[:, :, 0]<<16) + (array[:, :, 1]<<8) + array[:, :, 2])

关于python - Numpy 图像数组 : How to efficiently switch from RGB to Hex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26226354/

相关文章:

python - 尝试运行 NiftyNet 快速启动命令时出错

python - 文件读取并保存到数组

Java 通过使用比较器增加长度来对字符串数组进行排序

python - 从 python 网站下载图像的一部分?

python - 如何检查我的 Python Discord 机器人是否具有必要的权限?

python - 如何改变python中参数的值?

php - 如何在 if 条件下使用数组

java - JPanel 在单击鼠标之前不会绘制图像

image - 当我将 URL 从网站粘贴到 Facebook 或 slack 等时,如何显示图像

python - 如何使用 Python 指定将哪些列打印到文本文件?