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

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

我得到左边的图像。我实际上应该使图像正确。

最佳答案

好的!我想到了! RGB32具有R的8位,G的8位,B的8位和Alpha的8位。本质上是RGBA。因此,我们可以使用以下代码:

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

07-24 14:01