Как преобразовать RGBA-строку байтов в изображение в градациях серого? - PullRequest
1 голос
/ 14 апреля 2019

У меня есть байтовый массив изображения в RGBA (полученный из запроса в django), и я хочу это в оттенках серого.Как я могу это сделать?

По сути, у меня есть строка байтов (например, b'\x00\x00\x00....\x00', одна строка байтов значений RGBA изображения), и я хочу преобразовать ее в массив нудистых оттенков серого, например:

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

Длина байтового массива составляет 360000 для изображения 300x300 пикселей.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

С помощью opencv вы можете преобразовать изображение в оттенки серого с этой строкой gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

Надеюсь, это вам поможет!

Adrien

0 голосов
/ 14 апреля 2019

Вы можете преобразовать свою строку байтов в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...