Формат видео Force Qt Camera - PullRequest
       12

Формат видео Force Qt Camera

0 голосов
/ 09 октября 2018

Я пытаюсь использовать Qt Camera из QML.

Я занимаюсь разработкой пользовательского видеофильтра:

QVideoFrame MyFilterRunnable::run(QVideoFrame* input, const QVideoSurfaceFormat&, RunFlags)

Я начал развертывание приложения в Windows, и у меня есть следующее:

  • кадр может отображаться в QAbstractVideoBuffer::ReadWrite
  • формат пикселя кадра равен PixelFormat::Format_BGR32

Когда я перешел на Linux, к сожалению, все изменилось, без смены камеры у меня есть:

  • Фрейм только QAbstractVideoBuffer::ReadOnly
  • Формат пикселя кадра PixelFormat::Format_YUYV

И теперь я действительно не знаю, как преобразовать этот кадр вOpenCV Mat.

Есть ли способ выбрать, какой будет формат пикселей камеры?

1 Ответ

0 голосов
/ 04 ноября 2018

Я сталкиваюсь с той же проблемой между моей Linux-машиной и Raspberry: я использую одну и ту же камеру, и форматы пикселей, представленные QVideoFrame, отличаются.Вероятно, это как-то связано с v4l2

По поводу преобразования из YUYV в OpenCV Mat этот код работал для меня:

QVideoFrame *input ;
...
auto input_w = input->width ();
auto input_h = input->height();

auto cam_data = input->bits();

cv::Mat yuyv(input_h, input_w,CV_8UC2, cam_data);
cv::Mat rgb (input_h, input_w,CV_8UC3);

cvtColor(yuyv, rgb, CV_YUV2BGR_YUYV);
...