added display function.

This commit is contained in:
Josh Miklos
2019-06-26 17:31:03 -07:00
parent 8d94b0f9a6
commit e9f49862e7
3 changed files with 34 additions and 0 deletions

View File

@ -1 +1,3 @@
__version__ = '0.6.4'
from .window_sub.cv_window_sub import display

View File

@ -5,6 +5,7 @@ import numpy as np
from .winctrl import WinCtrl
from cvpubsubs.webcam_pub.camctrl import CamCtrl
from cvpubsubs.webcam_pub.frame_handler import VideoHandlerThread
from localpubsub import NoData
from cvpubsubs.window_sub.mouse_event import MouseEvent
@ -112,3 +113,16 @@ class SubscriberWindows(object):
sub_cmd.release()
WinCtrl.quit(force_all_read=False)
self.__stop_all_cams()
def display(*vids, names=[]):
vid_threads = [VideoHandlerThread(v) for v in vids]
for v in vid_threads:
v.start()
if len(names) == 0:
names = ["window {}".format(i) for i in range(len(vids))]
SubscriberWindows(window_names=names,
video_sources=vids
).loop()
for v in vid_threads:
v.join()

View File

@ -4,7 +4,9 @@ import unittest as ut
import cvpubsubs.webcam_pub as w
from cvpubsubs.window_sub import SubscriberWindows
from cvpubsubs.window_sub.winctrl import WinCtrl
from cvpubsubs import display
from cvpubsubs.input import mouse_loop, key_loop
import numpy as np
if False:
import numpy as np
@ -159,3 +161,19 @@ class TestSubWin(ut.TestCase):
img[mouse_event.y - 5:mouse_event.y + 10, mouse_event.x - 5:mouse_event.x + 10, :] = 1.0
VideoHandlerThread(video_source=img, callbacks=function_display_callback(conway)).display()
def test_double_win(self):
vid1 = np.ones((100, 100))
vid2 = np.zeros((100, 100))
t1 = w.VideoHandlerThread(vid1)
t2 = w.VideoHandlerThread(vid2)
t1.start()
t2.start()
SubscriberWindows(window_names=['cammy', 'cammy2'],
video_sources=[vid1, vid2]
).loop()
t1.join()
t1.join()
def test_display(self):
display(np.ones((100, 100)), np.zeros((100, 100)))