From ebff3999bd03a402e688a999e3346f06e9b16b9a Mon Sep 17 00:00:00 2001 From: heimbsle69869 Date: Sun, 4 Aug 2019 17:05:59 +0200 Subject: [PATCH] move streaming to new folder + other method --- camera/{ => video_stream}/video_client_pi.py | 0 camera/{ => video_stream}/video_client_pi_cv2.py | 12 ++++++++---- camera/{ => video_stream}/video_server.py | 0 camera/video_stream/zmq_video_client.py | 14 ++++++++++++++ camera/video_stream/zmq_video_server.py | 10 ++++++++++ 5 files changed, 32 insertions(+), 4 deletions(-) rename camera/{ => video_stream}/video_client_pi.py (100%) rename camera/{ => video_stream}/video_client_pi_cv2.py (80%) rename camera/{ => video_stream}/video_server.py (100%) create mode 100644 camera/video_stream/zmq_video_client.py create mode 100644 camera/video_stream/zmq_video_server.py diff --git a/camera/video_client_pi.py b/camera/video_stream/video_client_pi.py similarity index 100% rename from camera/video_client_pi.py rename to camera/video_stream/video_client_pi.py diff --git a/camera/video_client_pi_cv2.py b/camera/video_stream/video_client_pi_cv2.py similarity index 80% rename from camera/video_client_pi_cv2.py rename to camera/video_stream/video_client_pi_cv2.py index b612325..910e9b2 100644 --- a/camera/video_client_pi_cv2.py +++ b/camera/video_stream/video_client_pi_cv2.py @@ -7,7 +7,7 @@ import cv2 # Connect a client socket to my_server:8000 (change my_server to the # hostname of your server) client_socket = socket.socket() -client_socket.connect(('my_server', 8000)) +client_socket.connect(('192.168.1.107', 8000)) # Make a file-like object out of the connection connection = client_socket.makefile('wb') @@ -17,11 +17,15 @@ try: while True: ret, frame = cap.read() - if frame == None: + if frame is None: break - - image = cv2.imencode('.jpg', frame) + print(type(frame)) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + print(type(gray)) + _, image = cv2.imencode('.jpg', gray) + print(type(image)) stream = image.tobytes() + print(type(stream)) # Write the length of the capture to the stream and flush to # ensure it actually gets sent diff --git a/camera/video_server.py b/camera/video_stream/video_server.py similarity index 100% rename from camera/video_server.py rename to camera/video_stream/video_server.py diff --git a/camera/video_stream/zmq_video_client.py b/camera/video_stream/zmq_video_client.py new file mode 100644 index 0000000..a85896f --- /dev/null +++ b/camera/video_stream/zmq_video_client.py @@ -0,0 +1,14 @@ +# run this program on each RPi to send a labelled image stream +import socket +import time +from imutils.video import VideoStream +import imagezmq + +sender = imagezmq.ImageSender(connect_to='tcp://jeff-macbook:5555') + +rpi_name = socket.gethostname() # send RPi hostname with each image +picam = VideoStream(usePiCamera=True).start() +time.sleep(2.0) # allow camera sensor to warm up +while True: # send images as stream until Ctrl-C + image = picam.read() + sender.send_image(rpi_name, image) \ No newline at end of file diff --git a/camera/video_stream/zmq_video_server.py b/camera/video_stream/zmq_video_server.py new file mode 100644 index 0000000..3c06787 --- /dev/null +++ b/camera/video_stream/zmq_video_server.py @@ -0,0 +1,10 @@ +import cv2 +import imagezmq + +image_hub = imagezmq.ImageHub() + +while True: # show streamed images until Ctrl-C + rpi_name, image = image_hub.recv_image() + cv2.imshow(rpi_name, image) # 1 window for each RPi + cv2.waitKey(1) + image_hub.send_reply(b'OK') \ No newline at end of file