如何解决为 60 个 QImages 工作后“qimage 内存不足,返回空图像”
我阅读了很多关于这个主题的帖子,但似乎没有帖子对我有帮助。 我正在运行 32 位 Qt 应用程序。
qimage 内存不足返回空图像
我想从 mp4 文件中读取视频帧并将它们转换为 QImage。之后,我想将 QImage 转换为 Qpixmap 以将其显示在 QGraphicsView (setpixmap) 上。
这是相关的代码:
Qpixmap QtMainApp::MatToQpixmap(cv::Mat& cvMat)
{
QImage qimg((cvMat).data,(cvMat).cols,(cvMat).rows,(cvMat).step,QImage::Format_RGB888);
return Qpixmap::fromImage(qimg.rgbSwapped());
}
std::vector <Qpixmap> vecQVideobilder{};
cv::VideoCapture videofile;
videofile.open("video.mp4");
while(true)
{
bool bErfolg = videofile.read(MatTemp);
if (!bErfolg)
break;
vecQVideobilder.push_back(MatToQpixmap(MatTemp));
}
奇怪的是,它适用于随机数量的帧。我可以毫无问题地显示这些框架。
但在某些时候(在 60 到 100 帧之后(它有所不同))我收到错误消息并且我只得到空白图像。
我已经读过,对于 32 位应用程序 QImage 来说,框架的大小/解决方案可能太大了。但后来我想知道为什么它适用于前 60 或 100 帧。
有什么我可以做的吗?提前致谢。
亲切的问候 提姆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。