[glReadPixels在Python中返回不同的数据类型

问题描述 投票:0回答:1

[我正在使用Ubuntu 3.6中的Python 3.6 / PyOpenGL 3.1.0在具有相同配置的两台不同机器上使用OpenGL(除非我缺少某些东西)。

我在两台计算机上都运行相同的脚本。

代码如下:

    pixels = glReadPixels(0, 0, 640, 640, GL_RGB, GL_FLOAT)
    print(pixels)

在一台机器上,print显示:

<OpenGL.arrays.ctypesarrays.c_float_Array_640_Array_640_Array_3 object at 0x7fcd1e681158>

而另一方面,我得到了一个浮点数组,如预期的那样:

[[[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]
  ...

您对此有何看法?谢谢。

python opengl pyopengl
1个回答
0
投票

按照乔的建议,我尝试了print(type(pixels))并发现:

打印美观矩阵的机器上的[<class 'numpy.ndarray'>

vs

<OpenGL.arrays.ctypesarrays. ...>上的另一个。

事实证明第二台机器错过了numpy。安装numpy后,结果与第一台计算机上获得的结果相同。

这特别令人讨厌,因为当尝试使用pickle序列化数据时脚本第二台机器崩溃了。

将这个答案留在这里,希望其他人会发现它有用。

© www.soinside.com 2019 - 2024. All rights reserved.