Source code for draugr.drawers.opencv_drawers.opencv_image_stream

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Christian Heider Nielsen"
__doc__ = r"""

           Created on 25-01-2021
           """
__all__ = ["OpencvImageStream"]

from typing import Sequence

import cv2

from draugr.drawers.drawer import Drawer
from draugr.opencv_utilities import WindowFlagEnum
from draugr.opencv_utilities.windows.default import match_return_code
from warg import drop_unused_kws, passes_kws_to


[docs]class OpencvImageStream(Drawer): """description"""
[docs] @drop_unused_kws @passes_kws_to(Drawer.__init__) def __init__(self, title: str = "", render: bool = True, **kwargs): super().__init__(**kwargs) if not render: return self.window_id = title cv2.namedWindow(self.window_id, WindowFlagEnum.normal.value)
[docs] def draw(self, data: Sequence): """ :param data: :return:""" if match_return_code(cv2.waitKey(1)): # esc to quit cv2.destroyWindow(self.window_id) raise StopIteration else: cv2.imshow(self.window_id, data)
if __name__ == "__main__": def asdasf() -> None: """ :rtype: None """ from draugr.opencv_utilities import frame_generator, AsyncVideoStream from draugr.tqdm_utilities import progress_bar with AsyncVideoStream() as vc: with OpencvImageStream() as s: for i in progress_bar(frame_generator(vc), auto_total_generator=False): s.draw(i) asdasf()