Я читаю изображение с камеры в формате cv2.COLOR_RGB2BGR
. Ниже приведена временная работа для того, чего я пытаюсь достичь:
import cv2
from skimage import transform, io
...
_, img = cam.read()
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
cv2.imwrite("temp.png", img)
img = io.imread("temp.png", as_gray=True)
img = transform.resize(img, (320, 240), mode='symmetric', preserve_range=True)
Я нашел один способ сделать это преобразование из этот пост, однако, кажется что данные изображения не такие, как если бы я прочитал одно и то же изображение из пути?
Из этой документации я узнал, что могу использовать img_as_float(cv2_img)
, но это преобразование не дает того же результата, что и io.imread("temp.png", as_gray=True)
Как правильно выполнить это преобразование? Должен ли я сначала преобразовать изображение обратно в RGB, а затем использовать img_as_float()?
_, img = cam.read()
- это вызов OpenCV VideoCapture !? Тогда почему вы конвертируете с помощьюcv2.COLOR_RGB2BGR
?img
уже находится в цветовом пространстве BGR при использовании функций OpenCV. Затем вы сохраняете цветное изображение, но загружаете его в оттенках серого!? Какой конверсии вы на самом деле хотите достичь? Не могли бы вы описать желаемое преобразование словами? В общем: изображения OpenCV являются изображениями skimage, поскольку обе библиотеки используют массивы NumPy для представления изображений. Цветовое пространство, обработка типов данных различаются, да. - person HansHirse   schedule 25.02.2021