python - 如何从 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
构造函数时找到正确的图像格式(我猜)。我尝试了其中的几个,但没有一个有效。那么如何确定该图像数据的格式呢?
解决方案
推荐阅读
- python - Django 导出到 csv 只输出一行数据
- java - 简单的java打开文件进程莫名其妙结束
- bash - Bash - 在一定时间后终止命令
- python - 为什么 DateOffset.rollback() 不能像我期望的那样工作几天/几小时?
- json - 如何使用正则表达式传递“或”条件?
- javascript - 如果 id 没有出现,函数会中断
- python - 如何使用 Pandas 对每个页面每月的日期进行分组和计数?
- python - CLIPS 初学者:如何使用 Python 和 Clipspy 在事实中添加自动计数器属性
- javascript - scrollIntoView 在找到元素之前停止
- reactjs - Vite 和 Sendbird 不起作用