首页 > 解决方案 > 如何从 numpy.ndarray 确定图像格式?

问题描述

在我的 Qt 应用程序中,我将图像数据作为numpy.ndarray. 通常来自cv2.imread(),然后我将其转换为 a QImage,如下所示:

height, width, channel = cvImg.shape
bytesPerLine = 3 * width
qImg = QImage(cvImg.data, width, height, bytesPerLine, QImage.Format_RGB888)

这很好用,QImage可以转换为像素图并绘制到标签上。现在在某些情况下,我不会通过 文件从文件中获取图像数据imread(),而是直接从相机中获取图像数据。这个数据也是一个numpy.ndarray,我可以通过保存它cv2.imwrite()(然后在图像查看器中打开它)。但是,使用上面的代码,我无法将该图像数据直接转换为 a QImage,结果是没有任何细节的红色图像,只有一些垂直线。

现在,由于我可以保存该相机图像数据,它似乎是有效的,我只需要在调用QImage构造函数时找到正确的图像格式(我猜)。我尝试了其中的几个,但没有一个有效。那么如何确定该图像数据的格式呢?

标签: pythonimageqtnumpyopencv

解决方案


推荐阅读