Source code for draugr.opencv_utilities.raster_sequences.frames
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "Christian Heider Nielsen"
__doc__ = r"""
Created on 21/03/2020
"""
from functools import partial
from typing import Callable, Iterable, Optional
import cv2
__all__ = ["frame_generator", "to_rgb"]
from warg import identity
to_rgb = partial(cv2.cvtColor, code=cv2.COLOR_BGR2RGB)
[docs]def frame_generator(
video_stream: cv2.VideoCapture,
coder: Optional[Callable] = identity,
) -> Iterable:
"""
:param video_stream:
:param coder:"""
if coder is None:
coder = identity
while video_stream.isOpened():
success, frame = video_stream.read()
if success:
yield coder(frame)
else:
break
if __name__ == "__main__":
def asd() -> None:
"""
:rtype: None
"""
from draugr.opencv_utilities.windows.image import show_image
from draugr.tqdm_utilities import progress_bar
for image in progress_bar(frame_generator(cv2.VideoCapture(0))):
if show_image(image, "frame", wait=1):
break # esc to quit
asd()