概述
我的应用程序有两个方面,一方面,我使用C++来从PrORA的EBOSK SDK读取相机的帧。当第一次接收到该流时,在将缓冲器转换为图像之前,我能够一次读取流16位,以便对每个像素执行一些计算,即,对于每个像素存在16位的数据块。
现在,下半部分是一个Django web应用程序,在这里我也看到了这个视频输出,这次是通过ffmpeg,nginx,hls流。当用户点击视频时,我希望能够获取当前帧和它们的点击坐标,并执行与C++中的上述相同的计算。
现在,我使用html5画布来捕获帧,并使用canvas.toDataURL()将帧转换为base64编码的图像,然后通过AJAX将base64图像、坐标和帧的尺寸传递给python。
在python中,我试图操作这个base64编码的图像,使其每像素16位。目前我正在做以下工作:pos = json.loads(request.GET['pos'])
str_frame = json.loads(request.GET['frame'])
dimensions = json.loads(request.GET['dimensions'])
pixel_index = (dimensions['width'] * pos['y']) + pos['x'] + 1
b64decoded_frame = base64.b64decode(str_frame.encode('utf-8'))
但是,b64decoded_frame中的索引要少得多,图像中有像素,整数值也没有预期的高。我已经检查了,图像是完整的,因为我可以保存为一个png。
总之,如何将base64图像转换为序列化的二进制流,其中每个像素由16位表示。
更新
我忘了说我在用Python3.2
在做了更多的研究之后,我认为我要做的是得到给定像素的mono16值。我不知道这是否是我想要做的,但是如果有人能解释如何将图像转换成mono16或者像素转换成mono16,我可以探索一下,看看这是否是真正的解决方案。
最后
以上就是美满水池为你收集整理的python 变量转二进制流_将图像转换为二进制流的全部内容,希望文章能够帮你解决python 变量转二进制流_将图像转换为二进制流所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复