如何将RGBA字节串转换为灰度图像?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将RGBA字节串转换为灰度图像?相关的知识,希望对你有一定的参考价值。

我在RGBA中有一个图像的字节数组(从django中的请求接收),我想要灰度。我该怎么做?

基本上,我有一个字节串(例如,b'x00x00x00....x00',图像的RGBA值的单字节字符串),我想将其转换为灰度numpy数组,如:

[[0,  0,...,0],
 [255,0,...,0],
 [...],
 [...]]

对于360000像素的图像,字节数组的长度是300x300

答案

您可以将您的bytestring转换为np.array,然后将其转换为灰度或执行您可能需要的任何操作。

import cv2
import numpy as np

# this is to simulate your bytestring
x = b'x00'*300*300*4

# convert to np.array()
img = np.frombuffer(x, dtype=np.uint8).reshape((300, 300, 4))

print(img.shape)
# (300, 300, 4)

# process the image, e.g.,
img_gray = cv2.cvtColor(img, cv2.COLOR_RGBA2GRAY)

print(img_gray.shape)
# (300, 300)
另一答案

使用opencv,您可以使用该行gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)将图像转换为灰度

我希望它会对你有所帮助!

阿德里安

以上是关于如何将RGBA字节串转换为灰度图像?的主要内容,如果未能解决你的问题,请参考以下文章

随机字节的bytearray转换为灰度图像和BGR图像

如何使用 IPP 将 8 位灰度图像转换为 NV12(有限范围)色彩空间

如何获取PNG图片某点像素的rgba值

如何将 RGB 图像转换为灰度但保留一种颜色? - 爪哇

将视频转换为单张图片(灰度)【MATLAB】

对于IOS,如何使用vImage将ARGB图像转换为灰度图像