qt - 如何将 RGB32 格式的 QImage 转换为 OpenCV::mat?

标签 qt opencv qimage

我有一个 RGB32 格式的 QImage 当我这样做时:

cv::Mat depthMat(depthImg.height(),depthImg.width(),CV_8UC3,(uchar*)depthImg.bits(),depthImg.bytesPerLine());

我得到了左边的图像。我实际上应该得到右边的图像。 enter image description here

最佳答案

好的!我想到了! RGB32有8位R,8位G,8位B,8位Alpha。它本质上是RGBA。所以,我们可以使用这个:

cv::Mat depthMat(depthImg.height(),depthImg.width(),CV_8UC4,(uchar*)depthImg.bits(),depthImg.bytesPerLine());

enter image description here

关于qt - 如何将 RGB32 格式的 QImage 转换为 OpenCV::mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811166/

相关文章:

c++ - qt鼠标事件等于触摸屏事件吗?

python - Anaconda 和 Opencv 打不开 mp4

c++ - 快速图像处理

c++ - 在类方法之间传递 QImage 对象

qt - 压缩 QImage 或 QPixmap

c++ - 无法在另一个 Linux 系统上运行可执行二进制文件?

c++ - 在 QScrollBar 可见性发生变化时获取 QScrollBar 宽度

c++ - 知道为什么 QHash 和 QMap 返回 const T 而不是 const T& 吗?

ubuntu - 在ubuntu中用cuda编译opencv的makefile停止工作

java - 如何使用Java OpenCV