Python - 如何使用 Opencv 和 PIL 将 24 位 PNG 图像转换为 32 位

标签 python numpy opencv image-processing python-imaging-library

我想将 24 位 PNG 图像转换为 32 位,以便它可以显示在 LED 矩阵上。这是我使用的代码,但它将 24 位转换为 48 位

import cv2
import numpy as np
i = cv2.imread("bbb.png")
img = np.array(i, dtype = np.uint16)
img *= 256
cv2.imwrite('test.png', img)

最佳答案

我看了christmas.png您链接到的代码中的图像,它似乎是带有调色板和 8 位 Alpha channel 的 624x8 像素图像。

假设示例图像有效,您可以通过获取 PNG 图像并添加一个完全不透明的 alpha channel 来制作具有相同特征的图像,如下所示:

#!/usr/local/bin/python3
from PIL import Image

# Load the image and convert to 32-bit RGBA
im = Image.open("image.png").convert('RGBA')

# Save result
im.save("result.png")

我生成了一个渐变图像并应用了该处理并得到了这个,所以也许你可以试试:

enter image description here

关于Python - 如何使用 Opencv 和 PIL 将 24 位 PNG 图像转换为 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295414/

相关文章:

python - Pytorch 的数据加载器 shuffle 何时发生?

python - 在 Python 中编辑多行字符串

python - 具有多个条件的元组排序

Python 问题 - 我有一个类列表,如何删除重复项?

python - Numpy:可以解析大小不等的多维数组吗?

python - 如果值在列数据框中,则 Pandas 获取行

python - 使用纬度/经度计算距离矩阵的更快方法

python - 如何创建 .pyd 文件?

c++ - 无法使用带有 msvc 的 OpenCV 调试构建来编译项目

c++ - 如何使用 AdaBoost 进行特征选择?