将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法

2024-02-06

将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 最快的方法是什么?

我需要从摄像头捕捉图片并将其显示在表格上,频率为每秒 30 帧。我尝试使用 QImage 构造函数:

QImage qImage((uchar *) image->imageData, image->width, image->height, QImage::Format_RGB32);

但此后图像已损坏。那么,我怎样才能快速做到这一点(我认为将像素逐像素放入 QImage 不是一个好的决定)?


在开始之前,OpenCV 使用默认BGR格式。不是RGB!所以在创建之前QImage你需要转换你的IplImage转换为 RGB:

cvtColor(image, image, CV_BGR2RGB);

然后你可以:

QImage qImage((uchar*) image->imageData, image->width, image->height, QImage::Format_RGB32);

注意上面的构造函数 http://doc.qt.nokia.com/4.7-snapshot/qimage.html#QImage-5不会像您想象的那样复制数据,如文档所述:

缓冲区必须在 QImage 的整个生命周期内保持有效

所以如果你有性能问题不是因为转换过程。这很可能是由您正在使用的绘图方法引起的(问题中未共享)。总结一下很多废话,你应该渲染QImage到 OpenGL 纹理 https://stackoverflow.com/questions/9011108/image-scaling-keepaspectratiobyexpanding-through-opengl并让视频卡为您完成所有绘图工作。

您的问题有点误导,因为您的主要目标不是找到最快的转换方法,而是一种实际有效的方法,因为您的方法无效。

当你说时,要记住另一件重要的事情:

此后图像已损坏

你必须知道,这完全是模糊的,它对我们没有任何帮助,因为造成这种效果的原因有很多,如果没有源代码,就不可能确定你做错了什么。共享原始图像和损坏的图像可能会提供一些有关问题所在的线索。

现在就这样。祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法 的相关文章

随机推荐

  • Android DownloadManager 保存到 Download 文件夹

    我正在使用 DownloadManager 来下载文件 我想将下载内容放在标准下载文件夹中 以便人们可以使用文件管理器在最明显的位置轻松找到它们 Uri downloadLocation Uri fromFile new File Envi
  • 如何实现中值堆

    与最大堆和最小堆一样 我想实现中值堆来跟踪给定整数集的中值 API应具有以下三个功能 insert int should take O logN int median will be the topmost element of the h
  • Angular2 路由。请求的路径在索引 1 处包含未定义的段

    我在 Angular 2 中遇到路由问题 我从操作调用 router navigate 到数据表 罕见的是 有时当我单击调用该行的按钮时 它可以正常工作 有时却不能 this router navigate edit id relative
  • 在selenium问题中打开chrome

    我目前正在参加我的第一个自动化测试课程 讲师让我们在加载 Selenium 后在 Eclipse 中创建一个程序 并在程序中创建一个步骤来查看可执行文件以启动 chrome 然后指定一个网站进行检查 看起来我陷入了循环 这是程序 java程
  • 使用 r 删除希伯来语“niqqud”

    一直在努力去除niqqud https en wikipedia org wiki Niqqud 用于表示元音或区分希伯来字母表字母的替代发音的变音符号 例如我有这个变量 样本1 我找不到有效的方法来删除字母下面的标志 尝试过纵梁 与str
  • 从 Web 开发学习 Objective C (Cocoa) 进行 iPhone 编程?

    我想学习开发 iPhone 应用程序 我在 HTML CSS 和 PHP 方面拥有丰富的经验 我也了解一些 JavaScript 我应该从哪里开始 我已经下载了带有 XCode 的 SDK 等等 我是不是有点超前了 我真的不知道 有教程或者
  • 谷歌应用脚​​本,团队驱动的谷歌选择器

    221 5000 你好 目前我正在尝试为谷歌团队驱动器实现谷歌pikker 此代码适用于我的 Google 云端硬盘 但如果您将此代码用于 Google Team Drives 请添加参数 enableFeature google pick
  • 将字符串拆分为行 Oracle SQL

    在搜索论坛后 我想出了以下内容 但它不起作用 我有一张桌子 上面有以下内容 ID Strings 123 abc fgh dwd 243 dfs dfd dfg 353 dfs 424 dfd dfw 523 请注意 大约有 20 000
  • 如何对顺序逻辑进行单元测试?

    假设我有具有以下方法的 Car 类 装载汽油 I燃油气 InsertKey IKey键 启动引擎 IDriverSession Go Car 的目的是配置并返回 IDriverSession 应用程序的其余部分使用该 IDrivingSes
  • 在我的主机上运行 python 脚本

    我是 Web 开发和 Python 的新手 由于我没有足够的词汇来提出确切的问题 这里总结了需要做什么 我有一个小的测试 python cgi 脚本 我已将其上传到 home username pyscripts 位于上面 home 用户名
  • Java 7 中的 emma 和 junit 导致 java.lang.VerifyError 和非法局部变量错误

    所以我收到这些错误 junit 方法 test nz ac massey cs sdc log4jassignment s06005586 AppenderLayoutTest V 中非法局部变量表长度 17 junit java lang
  • JSON.parse() 是如何工作的?

    我没有在 javascript 上做太多工作 而且 我需要解析一个 JSON 字符串 所以 我想知道 JSON parse 到底做了什么 例如 如果我将 json 字符串分配给这样的变量 var ab name abcd details a
  • (为什么)移动构造函数或移动赋值运算符应该清除其参数?

    我正在学习的 C 课程中的移动构造函数实现示例看起来有点像这样 Move constructor Motorcycle Motorcycle Motorcycle ori m wheels std move ori m wheels m s
  • React Native 中的 PhaseScriptExecution [CP-User] 错误

    现在每次我创建一个新项目react native init ProjectName创建后我做npx pod install进而react native run ios它给了我错误 我创建的每个新项目都会发生这种情况 我不确定是否需要进行更新
  • 长赋值和双赋值不是原子的 - 这有什么关系?

    我们知道 long 和 double 赋值在 Java 中不是原子的 除非它们被声明为 volatile 我的问题是它在我们的编程实践中到底有多重要 例如 如果您看到下面的类 其对象在多个线程之间共享 The below class is
  • Facebook向多个朋友“发送”对话

    这个想法是 用户可以请求几个朋友对他们所做的事情提供反馈 我有一个朋友选择器 效果很好 从这里我得到用户 ID 然后我调用发送对话框 结果有多个收件人 而只有一个 有谁知道为什么 FB ui method send name Test to
  • Blazor WebAssembly:同一组件渲染上的多个路由

    我实际上正在试验 Blazor WebAssembly 除了一件事之外 一切都很好 我的想法是我想共享相同的组件来创建或编辑项目 组件的名称是 CreateOrEdit razor 我有两条路线 page master maker crea
  • 单击注销按钮后终止会话并重定向到登录页面

    我在JSP中有以下代码
  • Sass 加载器和 webpack 4

    如何在 webpack 4 中使用 sass 加载器 我读了很多关于这方面的内容 大多数网站建议使用 ExtractTextPlugin 但 ExtractTextPlugin 不适用于 webpack 4 我写了以下内容webpack c
  • 将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法

    将 IplImage IPL DEPTH 32S 转换为 QImage Format RGB32 最快的方法是什么 我需要从摄像头捕捉图片并将其显示在表格上 频率为每秒 30 帧 我尝试使用 QImage 构造函数 QImage qImag