python - glReadPixels 在 Python 中返回不同的数据类型
问题描述
我在 Ubuntu 中通过 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.]
...
你怎么看待这件事?谢谢你。
解决方案
按照乔的建议,我尝试print(type(pixels))
并发现:
<class 'numpy.ndarray'>
在打印漂亮矩阵的机器上
对比
<OpenGL.arrays.ctypesarrays. ...>
在另一个上。
原来,第二台机器错过了numpy
。安装后numpy
,结果与第一台机器上的结果相同。
这特别烦人,因为脚本第二台机器在尝试使用pickle
.
在这里留下这个答案,希望其他人可能会发现它有用。
推荐阅读
- dart - What is byte(Java) equivalent in dart?
- apache-spark - Spark Structured Streaming 应用程序在第二次执行后停止将数据写入 Kafka 主题并处于 awaitTermination 模式
- c++ - 符合标准的方法来做单元测试式的脚本注册?
- database - 如何在 Oracle SQL 中修复此过程?
- reactjs - Typescript Box 生成的联合类型太复杂而无法表示
- java - 返回具有重复项的子集
- python - 从布尔表达式生成 CNF
- javascript - 如何将此 Firebase 版本 8 代码更改为版本 9
- sql - Sql搜索和匹配
- java - 所以我是java新手并写了这段代码。为什么它给我错误?