OpenCV создает YUV420 или объект Mat в градациях серого из видеокадра формата пикселя YUYV - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь обработать видеокадры из приложения Qt.Вход от камеры QML имеет формат YUYV, и я не мог установить его на что-то еще, например YUV420 по умолчанию.Мне нужно захватить кадр и создать объект Mat в формате YUV420 или в оттенках серого.

Я пробовал cvtColor со следующими кодами, и все они терпели крах во время выполнения - COLOR_YUV2GRAY_YVY COLOR_YUV2RGB_YUYV COLOR_YUV2GRAY_YY * *YYYYYYYYYYYYYYYYYYYYY *YYЯ могу это сделать?

1 Ответ

0 голосов
/ 15 марта 2019

Итак, немного поиграв с кодами преобразования цветов, я обнаружил, что это решение работает для меня.

cv::Mat img = cv::Mat(m_videoHeight, m_videoWidth, CV_8UC2, input->bits());
cv::Mat gray;
cv::cvtColor(img, gray, cv::COLOR_YUV2GRAY_YVYU);

Это преобразует данный объект Mat YUYV - img в объект Mat в градациях серого - серый. input-> bits () относится к первому биту буфера видеокадров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...