Как считать кадр из файла YUV в OpenCV?

Другим вариантом является поиск iframe на панели инструментов «Инструменты» разработчика (это должно быть выполнимо, даже если основной документ не отвечает из-за блокировки prompt) - затем просто щелкните правой кнопкой мыши элемент iframe и удалите это, нет необходимости вводить любой Javascript. (или, если хотите, вы можете выбрать iframe с помощью querySelector и удалить его, например, document.querySelector('iframe').remove())

11
задан mpenkov 2 February 2011 в 15:41
поделиться

1 ответ

Для дальнейшего использования: Я преобразовал блестящий ответ @xianyanlin к Python 3. Ниже кода работает с видео, снятыми от камеры Raspberry Pi, и, кажется, производит корректное цветное и соотношение сторон.

Предупреждение: это использует формат numpy для определения разрешения высоты * ширина, например, 1080 * 1920, 480 * 640.

class VideoCaptureYUV:
    def __init__(self, filename, size):
        self.height, self.width = size
        self.frame_len = self.width * self.height * 3 // 2
        self.f = open(filename, 'rb')
        self.shape = (int(self.height*1.5), self.width)

    def read_raw(self):
        try:
            raw = self.f.read(self.frame_len)
            yuv = np.frombuffer(raw, dtype=np.uint8)
            yuv = yuv.reshape(self.shape)
        except Exception as e:
            print(str(e))
            return False, None
        return True, yuv

    def read(self):
        ret, yuv = self.read_raw()
        if not ret:
            return ret, yuv
        bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_I420, 3)
        return ret, bgr
0
ответ дан 3 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: