Python的无符号字符*图像

Python的无符号字符*图像,python,c++,python-imaging-library,unsigned-char,pep3118,Python,C++,Python Imaging Library,Unsigned Char,Pep3118,我能够使用SWIG为相机库生成python绑定,并且能够使用库的内置函数捕获和保存图像。 我正在尝试将相机中的数据转换为Python图像库格式,该库提供函数以无符号字符*的形式返回相机数据。 有人知道如何将无符号char*图像数据转换成我可以在Python中使用的数据格式吗? 基本上,我正在尝试将无符号char*图像数据转换为Python图像库格式 谢谢。我假设那些无符号字符是实际的图像字节,因此您可以通过以下方式直接存储它们: with open('filename', mode='wb')

我能够使用SWIG为相机库生成python绑定,并且能够使用库的内置函数捕获和保存图像。 我正在尝试将相机中的数据转换为Python图像库格式,该库提供函数以无符号字符*的形式返回相机数据。 有人知道如何将无符号char*图像数据转换成我可以在Python中使用的数据格式吗? 基本上,我正在尝试将无符号char*图像数据转换为Python图像库格式


谢谢。

我假设那些
无符号字符是实际的图像字节,因此您可以通过以下方式直接存储它们:

with open('filename', mode='wb') as file:
    file.write(image_bytes)

(只要您在当前工作目录中已经有一个名为
filename
的文件。)

我认为您应该使用
fromstring
方法,如下所述:


另外,还有一篇关于使用python和opencv从相机捕获数据的文章值得一读:

好了,伙计们,经过长时间的斗争(可能是因为我是python新手),我终于解决了这个问题

我编写了一个python可以理解的数据结构,并将未签名的char*图像转换为该结构。在为自定义数据结构编写接口之后,我能够将图像转换为Python图像库图像格式。 我想在这里粘贴代码,但它不允许超过500个字符。 这是我代码的链接


我还附上了一些文件,以便您可以使用。

很好。这台相机是1394相机,我不认为我能用OpenCV获得图像。在fromstring示例中,python从一个文件加载到一个简单的二进制格式。在我的例子中,我有一个来自1394library的自定义结构,其中包含图像,访问数据的唯一方法是通过unsigned char*。我刚刚得到一些关于使用OpenCV绕过指针机制的想法,我将尝试并继续发布frombuffer方法如何?下面是我的代码FC2=\uuuu import\uuuuuuuuuu('FC2Py')fch=FC2.FCHelper()pycam=FC2.FC2PyCamera()retval=pycam.setCamera(fch.connectCamera(7150499))err=pycam.StartCapture()img=FC2.Image()err=pycam.cam.RetrieveBuffer(img)from-PIL导入图像pilimg=Image.frombuffer(“L”,(img.GetCols(),img.GetRows()),img.GetData(),“raw”,“L”,0,1)错误:回溯(最近一次调用):文件“/usr/lib/python2.6/dist packages/PIL/Image.py”,第1853行,frombuffer core.map\u buffer(数据、大小、解码器名称、无、0、参数)TypeError:需要字符串或缓冲Hey KarlPhillip,我终于明白了,为了让python理解数据类型unsigned char*image,我需要使用自定义数据结构对其进行类型映射。一旦我得到了,我就能够获得二进制数据,然后我按照您的建议使用image.frombuffer。谢谢。