unsigned char* 图像 转换为 Python

2 投票
3 回答
2328 浏览
提问于 2025-04-16 03:23

我用SWIG生成了一个相机库的Python接口,现在可以用这个库自带的功能来捕捉和保存图像。 我想把相机的数据转换成Python图像库可以用的格式,这个库提供的功能是返回无符号字符指针(unsigned char*)类型的数据。 有没有人知道怎么把无符号字符指针的图像数据转换成我可以在Python中使用的格式? 简单来说,我就是想把无符号字符指针的图像数据转换成Python图像库的格式。

谢谢大家。

3 个回答

0

我猜这些 unsigned char 实际上是图片的字节数据,所以你可以直接通过以下方式来存储它们:

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

(前提是你已经在当前工作目录下有一个叫 filename 的文件。)

1

我觉得你应该使用 fromstring 这个方法,具体的说明可以在这里找到:

如何使用PIL读取原始图像?

另外,还有一篇关于如何用Python和OpenCV从摄像头捕获数据的好文章,值得一读: http://www.jperla.com/blog/post/capturing-frames-from-a-webcam-on-linux

1

大家好,经过一番努力(可能因为我还是个Python新手),我终于解决了这个问题。

我写了一个数据结构,让Python能够理解,并把无符号字符型的图像转换成这个结构。写完这个自定义数据结构的接口后,我成功地把图像转换成了Python图像库所需的格式。

我想把代码贴在这里,但系统不允许超过500个字符。

这里有我代码的链接:

http://www.optionsbender.com/technologybending/python/unsignedcharimagedatatopilimage

我还附上了一些文件,方便大家使用。

撰写回答