我有一个相机连接到我的电脑,产生16位灰度图像。我用相机制造商的专有软件导入它们,然后将它们插入numpy数组中。在
imObj = fc2.Image()
frame = np.array(c.retrieve_buffer(imObj))
这会将数组强制转换为uint8。如果我试图将dtype参数添加到数组声明中:
^{pr2}$我得到以下输出:
typeError: __array__() takes no arguments (1 given)
有人知道是什么引起的吗?在
编辑: 我正在使用pyflycapture2。我不知道如何调用或设置图像类属性。在
似乎您可能正在使用
pyflycapture2
,它似乎没有一个能够重铸数据的__array__
钩子。在相反,它的
__array__
钩子选择了与图像相应的dtype
。也就是说,如果底层格式是PIXEL_FORMAT_MONO8
,则返回基于uint8
的数组;如果格式是PIXEL_FORMAT_MONO16
,则返回基于uint16
的数组。在有必要检查一下图像格式(
c.retrieve_buffer(imObj).img.format
)是否是您认为的格式?在相关问题 更多 >
编程相关推荐