|
|||||||
Как правильно сконвертировать cv::Mat в QImage
Время создания: 23.11.2017 20:05
Автор: Xintrea
Текстовые метки: opencv, Mat, Qt, QImage, картинка, изображение, цветное, черно-белое
Раздел: Компьютер - Программирование - Компьютерное зрение
Запись: xintrea/mytetra_syncro/master/base/1511456735n2lgd8bdgz/text.html на raw.github.com
|
|||||||
|
|||||||
Перекодирование цветной трехканальной матрицы OpenCV в QImage происходит так: cv::Mat currentFrame; ... // Создание QImage картинки QImage img((uchar*)currentFrame.data, currentFrame.cols, currentFrame.rows, currentFrame.step, QImage::Format_RGB888); // Преобразование цветов из BGR (OpenCV) в RGB (Qt) img=img.rgbSwapped(); Возможно, это не самый быстрый способ, но результат соответствует исходной картинке. Перекодирование черно-белой одноканальной матрицы OpenVC в QImage происходит так: cv::Mat currentFrame; ... // Из цветной картинки получаем черно-белую средствами OpenCV cv::cvtColor(currentFrame, currentBwFrame, CV_BGR2GRAY); // Создание черно-белой QImage картинки из ч/б vc::Mat QImage img((uchar*)currentBwFrame.data, currentBwFrame.cols, currentBwFrame.rows, currentBwFrame.step, QImage::Format_Grayscale8); По результатам тестов, перевод картинки 640x480 из одного формата в другой и вывод ее на экран в Qt-приложении происходит менее чем за 0.025 сек на неразогнаном IntelCore i7 KabyLake. Как по мне, так это достаточно медленно. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|