streaming_over_network_with_opencv_et_zeromq
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
streaming_over_network_with_opencv_et_zeromq [2022/02/19 08:34] – serge | streaming_over_network_with_opencv_et_zeromq [2022/02/25 13:15] (Version actuelle) – [Profondeur d'une OAK-D Lite] serge | ||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
</ | </ | ||
+ | **Pas de latence, peu ce consommation CPU, en python super facile à implémenter**\\ | ||
+ | **mais pas de réception dans VLC et Pure Data.**\\ | ||
+ | Utiliser **[[streamer_des_images_opencv_avec_v4l2-loopback|Streamer des images OpenCV avec v4l2-loopback]]** | ||
=====ZeroMQ===== | =====ZeroMQ===== | ||
**[[https:// | **[[https:// | ||
Ligne 16: | Ligne 19: | ||
* https:// | * https:// | ||
* [[https:// | * [[https:// | ||
- | | + | |
- | =====Installation===== | + | =====Implémentation dans Pure Data===== |
+ | | ||
+ | |||
+ | ====Installation de puredata==== | ||
+ | sudo apt install multimedia-puredata libzmq3-dev | ||
+ | |||
+ | ====Compilation du patch zmq==== | ||
+ | git clone git@github.com: | ||
+ | cd pd-zmq | ||
+ | make | ||
+ | |||
+ | ====Utilisation des scripts fournis==== | ||
+ | Ça envoie et reçoit des int/string, mais pas d' | ||
+ | Extrait de https:// | ||
+ | < | ||
+ | LATER | ||
+ | * proper architecture workflows | ||
+ | ** multiconnects/ | ||
+ | * complex objects | ||
+ | ** [zmf_router] -- [broker] as abstraction? | ||
+ | ** [zmf_dealer] -/ | ||
+ | ** [zmf_pair] | ||
+ | * implement streams to send audio blocks | ||
+ | ** binary modes | ||
+ | * send/ | ||
+ | ** binary (for audio/video frames) | ||
+ | ** string (for communication w external programs) | ||
+ | </ | ||
+ | Le paquet de la première image est reçu, mais il ne passe passe rien ensuite ... | ||
+ | =====Installation | ||
Dans un environnement virtuel python (3.9) | Dans un environnement virtuel python (3.9) | ||
Ligne 38: | Ligne 70: | ||
</ | </ | ||
- | =====Exemples | + | ====Lancement d'un script==== |
+ | |||
+ | cd / | ||
+ | ./ | ||
+ | |||
+ | ====Sender avec python et receive dans pd==== | ||
+ | |||
+ | Bon, là je suis nul en pd ! | ||
+ | =====Exemples===== | ||
+ | * Exemples inspirés de: https:// | ||
====Caméra==== | ====Caméra==== | ||
Le principe est simple, sender envoie " | Le principe est simple, sender envoie " | ||
- | Cet array peut être définit par ce que vous voulez. | + | Cet array peut être définit par ce que vous voulez.\\ |
+ | |||
+ | Les exemples utilisent souvent imutils, qui est une surcouche en python sur OpenCV, et qui a quelques bugs. On peut s'en passer facilement, il suffit de lire la doc OpenCV, par exemple pour retailler les images, les convertir en jpg etc ... | ||
<file python sender_cam.py> | <file python sender_cam.py> | ||
Ligne 49: | Ligne 92: | ||
sender = imagezmq.ImageSender(connect_to=' | sender = imagezmq.ImageSender(connect_to=' | ||
- | |||
my_name = " | my_name = " | ||
cap = cv2.VideoCapture(2) | cap = cv2.VideoCapture(2) | ||
time.sleep(2.0) | time.sleep(2.0) | ||
- | |||
while 1: | while 1: | ||
# image peut venir de n' | # image peut venir de n' | ||
# ici, c'est pour une caméra | # ici, c'est pour une caméra | ||
ret, image = cap.read() | ret, image = cap.read() | ||
- | | ||
if ret: | if ret: | ||
cv2.imshow(" | cv2.imshow(" | ||
sender.send_image(my_name, | sender.send_image(my_name, | ||
print(" | print(" | ||
- | |||
if cv2.waitKey(10) == 27: | if cv2.waitKey(10) == 27: | ||
break | break | ||
Ligne 73: | Ligne 112: | ||
image_hub = imagezmq.ImageHub() | image_hub = imagezmq.ImageHub() | ||
- | |||
while 1: | while 1: | ||
your_name, image = image_hub.recv_image() | your_name, image = image_hub.recv_image() | ||
print(your_name, | print(your_name, | ||
- | |||
cv2.imshow(your_name, | cv2.imshow(your_name, | ||
image_hub.send_reply(b' | image_hub.send_reply(b' | ||
- | |||
if cv2.waitKey(10) == 27: | if cv2.waitKey(10) == 27: | ||
break | break | ||
Ligne 87: | Ligne 123: | ||
- | + | {{tag>zmc opencv pd pure-data pure_data python sb}} | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | {{tag> | + |
streaming_over_network_with_opencv_et_zeromq.1645259675.txt.gz · Dernière modification : 2022/02/19 08:34 de serge