Je vais vous présenter la procédure pour diffuser l'image de la caméra depuis ev3 en utilisant mjpg-streamer. Avec ev3dev, vous pouvez configurer un serveur de streaming simplement en installant le logiciel. Créez un code pour afficher la vidéo en utilisant OpenCV côté PC.
Nous utilisons apt-get pour installer MJPG-streamer, mais veuillez créer une zone d'échange à l'avance car elle peut échouer en raison d'une mémoire insuffisante avec les paramètres par défaut. Veuillez vous référer à cet article pour créer la méthode! [EV3 x Python] Comment créer une zone d'échange
Si vous ne savez pas comment ouvrir le terminal en premier lieu ↓ [EV3 x Python] Connexion SSH
Entrez la commande suivante dans le terminal. Lorsqu'on vous demande le mot de passe, maker
$ cd ~
$ sudo apt-get install -y cmake libv4l-dev libjpeg-dev imagemagick
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ sudo make install
$ cd ~/mjpg-streamer/mjpg-streamer-experimental/
$ ./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so"
Si vous accédez à http: //ev3dev.local: 8080 avec le navigateur du PC auquel EV3 est connecté, la page de streaming s'ouvre. Je suis désolé dans une pièce sale w
streaming.py
from cv2.cv2 import VideoCapture,waitKey,imshow,destroyAllWindows
#Spécifiez le lien vers lequel la vidéo sera envoyée.
cap = VideoCapture("http://ev3dev.local:8080/?action=stream")
#Si le lien ne peut pas être ouvert
if not cap.isOpened():
print("Cannot open a video capture.")
exit(-1)
while True:
#La boucle se termine lorsque la touche esc est enfoncée
k = waitKey(1)
if k == 27:
break
#Obtenez le cadre de la vidéo entrante
ret, frame = cap.read()
#Si le cadre n'a pas pu être obtenu
if not ret:
continue
#Afficher le cadre
imshow("EV3 Streaming", frame)
#Libération de la capture&ferme la fenêtre
cap.release()
destroyAllWindows()
Recommended Posts