相机拍摄的 24fps 的 14 位灰度图传入 pyqt 实时显示,结果是雪花图不能正确显示,不过也不会闪退。
相机设置为 8 位灰度图可以正常在 pyqt 实时显示。
尝试用下面的代码转换为 8 位图再显示:
if self.image_raw.dtype == np.uint16:#已知 self.image_raw 是 numpy 数组
print("14bit image")
self.image_raw = ((self.image_raw / 16383) * 255).astype(np.uint8)
self.imv.setImage(self.image_raw, autoRange=True)
结果是直接闪退,提示是: 进程已结束,退出代码为 -1073741819 (0xC0000005)
问了 chatgpt 说是内存问题,继续问也问不出更多东西。
我将 fps 改为 1 以后程序可以维持几个循环,然后又闪退。
Windows11 ,python3.12 ,pyqt5
1
ysc3839 201 天前 via Android
0xC0000005 是 STATUS_ACCESS_VIOLATION ,需要用 native 调试器调试看看哪里出错了
|
2
NoOneNoBody 201 天前
pyqt 载入图片有格式要求
这个 numpy 的 shape 是多少,或者说图的 channel |
3
Anarchy 201 天前 via Android
这 14bit 数据应该连续的,你这直接按 16 拆分就有问题了,你试下单张,然后看下宽高和数组长度能不能对上。
|