当与USB摄像头连接并抓取图像数据时,我遇到了将数据保存为16位的问题。我将相机像素格式设置为Mono16,但每当我将原始图像数据保存到numpy数组时,数组默认为uint8数据类型。我注意到从Mono8切换到Mono16时原始数据阵列的大小翻了一番。我已经研究过numpy as_strided,但仍然没有解决问题。这是一段代码,以帮助显示情况的基本示例。
QFile
答案 0 :(得分:0)
您可以使用视图投射。请注意,视图转换重新解释数据缓冲区而不实际修改它,因此它很便宜。
data = numpy.array(im.getData()).view(numpy.uint16)
如果数据的字节顺序与您机器的本机字节顺序匹配。
否则您需要使用其中一个
data = numpy.array(im.getData()).view('<u2')
data = numpy.array(im.getData()).view('>u2')
dtype规范字符串中的'>'
/ '<'
代表大/小端。 'u'
表示unsigned int,'2'
表示两个字节。