Потребовалось на днях обрабатывать кадры с камеры (Использовалась QCamera) через OpenCV.
Да, OpenCV может сам захватывать фреймы, но в случае с Qt QCamera работает лучше и есть больше параметров (например выбо р формата YUV или MJPG).
Вот так выглядит конвертация:
QVideoFrame copy(frame); if (frame.isValid() && copy.map(QAbstractVideoBuffer::ReadOnly)) { Mat frameYUV=Mat(copy.height() + copy.height()/2, copy.width(), CV_8UC1, (void*)copy.bits() ); Mat frameRGB; cvtColor(frameYUV, frameRGB, CV_YUV2BGRA_I420); imshow("Video", frameRGB); }
C камеры приходит QVideoFrame frame в формате YUV.
Вот и всё =)