Python 实时处理 14 位图闪退

197 天前
 zisen

相机拍摄的 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

585 次点击
所在节点    问与答
3 条回复
ysc3839
197 天前
0xC0000005 是 STATUS_ACCESS_VIOLATION ,需要用 native 调试器调试看看哪里出错了
NoOneNoBody
197 天前
pyqt 载入图片有格式要求
这个 numpy 的 shape 是多少,或者说图的 channel
Anarchy
197 天前
这 14bit 数据应该连续的,你这直接按 16 拆分就有问题了,你试下单张,然后看下宽高和数组长度能不能对上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1039334

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX