Потребовалось на днях обрабатывать кадры с камеры (Использовалась 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.

Вот и всё =)

 

 

Leave a Comment

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

You may also like