Чтение кадров необработанного видео, записанного в Bayer_rggb8 в python - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь прочитать необработанный видеофайл, записанный в bayer_rggb8 в python для хранения определенных c кадров. Я знаю, что с FFmpeg я, вероятно, храню все кадры в нужном формате и затем работаю с ними. Тем не менее, дело в том, что это первая версия программы, и следующим шагом будет использование ее в режиме онлайн с камерой кузнечика, которая отправляет данные в формате bayer_rggb8, и я хочу обработать кадры без необходимости их сохранения в диск. Моя первая попытка была с функциями видеозахвата от OpenCV, но это не сработало. Я думаю, что правильным решением может быть открытие файла с open(filepath,'rb') и чтение количества байтов в кадре, а затем преобразование из пространства rggb8 в OpenCV bgr. Однако я не нашел способа сделать это. Ты когда-нибудь делал что-нибудь подобное? Есть ли книжный магазин, который может мне помочь? Я не прошу код напрямую, но сейчас я думаю, что я настолько потерян, что не вижу решений.

Я использую python 3.6 и opencv в Kubuntu 18.04 , Размер кадра 600X1920

Спасибо !!

1 Ответ

1 голос
/ 04 марта 2020

Я нашел решение; это было проще, чем я думал. Я думаю, что я был заблокирован

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)
...