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

时间:2019-04-14 12:52:53

标签: python opencv

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

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

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

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

2 个答案:

答案 0 :(得分:0)

您可以将字节字符串转换为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)

答案 1 :(得分:0)

使用opencv,您可以使用该行gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

将图像转换为灰度

希望它能对您有所帮助!

Adrien