Всем привет!
Как напрямую отрисовывать cv::cuda::GpuMat
в QPainter
? Я знаю способ с QImage, но это перекидывание обратно в CPU и затем обратно в видеопамять, чего не хочется. Посмотрел QPixmap - по ходу он не умеет инититься из GPU.
С QImage делаю примерно вот так:
QLabel* region;
Mat src;
QImage img;
Mat RGBframe;
if (m.channels()== 3)
{
cv::cvtColor(src, RGBframe, CV_BGR2RGB);
img = QImage((const unsigned char*)(RGBframe.data),
RGBframe.cols,RGBframe.rows,QImage::Format_RGB888);
}
else
{
img = QImage((const unsigned char*)(src.data),
src.cols,src.rows,QImage::Format_Indexed8);
}
QPainter p(region);
p.drawImage(0,0,img);
p.end();