我有一个字符串列表,是我在openGL中调用glreadPixels得到的。我想把这个字符串列表转换成一个图像,并在python中显示出来。这是我所尝试的:
st = ''.join((e)for e in get_frame_binary_data())
d = np.frombuffer(st.encode(),dtype=np.uint8,count=480*640*3).reshape([480,640,-1])
plt.imshow(d)
plt.show()
我得到的结果是完全错误的,但是如果我把同样的数据写入一个文本文件(在opengl c++中),然后从python中读取它,它就可以工作了:
with open('frame_binary_data', mode='rb') as f:
d = np.frombuffer(f.read(),dtype=np.uint8,count=480*640*3).reshape([480,640,-1])
plt.imshow(d)
plt.show()
我想这和编码有关。有人能帮我吗
1条答案
按热度按时间cidc1ykv1#
使用glreadpixels,你需要将数据保存为unsigned char,然后在python代码中,我使用bytes(my_frame_data)将列表转换为字节。
问题是我的数据需要保存为unsigned char。