我正在尝试用python读取一个用bayer_rggb8编码的原始视频文件,以存储一些特定的帧。我知道,使用FFmpeg,我可能会以我想要的格式存储所有帧,然后再处理它们。尽管如此,重点是这是该程序的第一个版本,下一步是将其在线使用,并使用蚂蚁摄像头以bayer_rggb8格式发送数据,我想处理这些帧,而不需要将它们存储在磁盘中。我的第一次尝试是使用OpenCV的视频捕获函数,但它不起作用。我认为一个正确的解决方案可能是用open(filepath,'rb')
打开文件,读取一帧中的字节数,然后从rggb8空间转换到OpenCV bgr。然而,我还没有找到做这件事的方法。你有没有做过类似的事情?有能帮到我的书店吗?我不会直接索要代码,但现在我想我太迷茫了,以至于我看不到解决方案。
我在Kubuntu 18.04中使用python 3.6和opencv。帧大小为600X1920
谢谢!!
发布于 2020-03-04 16:27:41
我找到了一个解决方案,它比我想象的要简单。我想我被卡住了
video = open(filepath,'rb')
framesize = 600 * 1920
initbyte = framesize * initframe
video.seek(initbyte)
frame = self.video.read(framesize)
frame = np.frombuffer(frame, dtype=np.uint8).reshape(600,1920)
bgrframe = cv2.cvtColor(frame,cv2.COLOR_BayerBG2BGR)
https://stackoverflow.com/questions/60529605
复制相似问题