在python中创建了一个rtsp客户机,它接收一个h264流并以二进制字符串的形式返回单个h264原始帧。我正在尝试处理每一个h264帧的飞行。在
我尝试了几种方法将此帧转换为numpy数组进行处理,但都失败了。在
到目前为止,我知道cv2.VideoCapture只接受一个文件名作为它的参数,而不是一个帧,也不是一个StringIO对象(类似文件的指向缓冲区的指针),但是我需要将我的字符串传递给它。在
我也尝试过类似的方法:
nparr = np.fromstring(frame_bin_str, np.uint8)
img_np = cv2.imdecode(nparr, cv2.CV_LOAD_IMAGE_COLOR)
尝试了不同的标志。但也惨遭失败。在
在多次尝试失败后,我没有了主意。在
总结一下我需要做的:我在一个变量中有一个h264原始帧,我需要为它创建一个openvc有效的numpy数组,或者以某种方式得到一个包含该帧的VideoCapture对象,这样我就可以处理该帧。在
任何建议都将不胜感激。在
希望这一切都有意义。在
提前谢谢你
正如米卡建议的那样,OpenCV中不支持h264原始格式,我们应该自己转换它。在
我认为您应该将
nparr
重塑为传入图像的形状。不需要进行imdecode。使用imshow显示结果并验证。在这是我用类似的方法转换16位原始图像(灰度)的代码。在显示之前,我已经重新规范化了我的图像。在
相关问题 更多 >
编程相关推荐