我有一个RGBA图像的字节数组(从django中的请求接收),我想要灰度图像。我该怎么办?
基本上,我有一个字节字符串(例如b'\x00\x00\x00....\x00'
,是图像的RGBA值的单个字节字符串),我想将其转换为灰度numpy数组,例如:
[[0, 0,...,0],
[255,0,...,0],
[...],
[...]]
对于360000
个像素的图像,字节数组的长度为300x300
。
答案 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