CV::Mat转QImage耗时太长怎么办
时间: 2023-08-03 13:05:28 浏览: 168
测试QImage加载解码、QImage使用原数据、QImage格式转换等等的时间消耗
5星 · 资源好评率100%
CV::Mat转QImage耗时长的原因可能是由于数据的拷贝所导致。您可以尝试使用QImage构造函数中的参数之一来避免数据的拷贝,具体方法如下:
1.将CV::Mat转换为QImage时,使用QImage的构造函数之一来直接使用Mat的数据指针。
```c++
QImage::QImage(uchar *data, int width, int height, int bytesPerLine, Format format)
```
2.将CV::Mat转换为QImage时,也可以使用QPixmap快速地将Mat转换为QPixmap,然后再将QPixmap转换为QImage。
```c++
cv::Mat mat = ...;
QPixmap pixmap = QPixmap::fromImage(QImage(mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888));
QImage image = pixmap.toImage();
```
这两种方法都可以避免数据的拷贝,从而提高转换的速度。
阅读全文