【发布时间】:2013-02-13 03:53:23
【问题描述】:
我的应用程序将网络摄像头图像流式传输到QWidget,然后在显示这些图像后就不再需要这些图像。应用程序运行了大约一两分钟,然后出现数十次此错误并崩溃:
QImage: out of memory, returning null image
QWidget 使用 displayImage(QImage) 方法,该方法每秒被调用多次。我觉得图像应该将指针作为参数,但我没有理由支持它。
如何确保QImages 从内存中释放?
注意:为了创建图像,我使用了 SO question how to convert an opencv cv::Mat to qimage 的已接受答案中描述的技术。
【问题讨论】:
-
我不知道 Qt,所以这可能无关紧要,但是你是如何创建 QImage 的?
-
我已经更新了我的答案。基本上,该应用程序使用 OpenCV 进行捕获,然后将
cv::Mat转换为QImage以进行显示。 -
QImage使用隐式共享,因此使用指针不会有任何好处。