OpenCV Python reseau

Benq360 Messages postés 103 Statut Membre -  
Benq360 Messages postés 103 Statut Membre -
Bonjour,
Après avoir installé opencv avec python, j'ai testé ce programme pour voir sa webcam :
import cv2.cv as cv
import time
import socket

cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)


while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera", img)
    if cv.WaitKey(10) == 27:
        break
cv.DestroyAllWindows()


je veux maintenant envoyer ceci par internet donc j'ai utilisé les sockets mais c'est la que je bloque, j'ai alors ce code pour le serveur :
import cv2.cv as cv
import time
import socket
import pygame


hote = '127.0.0.1'

port = input("Choisir un port : ")
port = int(port)

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((hote, port))
serversocket.listen(5)
print("Le serveur attend une connexion sur le port : {}".format(port))

cv.NamedWindow("camera", 1)

while True:
    connection, address = serversocket.accept()
    image_recu = connection.recv(32768)
    image = pygame.image.fromstring(image_recu, (320,240), "RGB" , True)
    cv.ShowImage("camera", image)
    if cv.WaitKey(10) == 27:
        break
cv.DestroyAllWindows()


et ce code pour le client :
import cv2.cv as cv
import time
import socket
import pygame


hote = '127.0.0.1'

port = input("Entrer le port du serveur : ")
port = int(port)

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect((hote, port))

capture = cv.CaptureFromCAM(0)

while True:
    img = cv.QueryFrame(capture)
    image_convert = img.tostring()
    clientsocket.send(image_convert)
    if cv.WaitKey(10) == 27:
        break
cv.DestroyAllWindows()


mais il y a un probleme au niveau de la conversion et je ne vois plus trop comment faire
Si quelqu'un a une idée, n'hesitez pas

Cordialement

3 réponses

Benq360 Messages postés 103 Statut Membre 3
 
personne ne sait comment convertir l'image en chaîne de caractères afin de l'envoyer par socket ?
0
heyquem Messages postés 808 Statut Membre 131
 
Bonsoir,

Je ne m'y connais pas assez pour comprendre ton code et répondre à ta question.
Mais il me semble que ce que tu veux faire nécessite une sérialisation des données, et non pas leur transformation en caractères.
Jette par exemple un oeil sur Protocol Buffer, j'ai l'impression qu'il fait ce dont tu as besoin.

Et d'autre part, si tu veux des réponses rapides et balèzes en Python, va sur le forum Python de developpez.com
0
Benq360 Messages postés 103 Statut Membre 3
 
Ok je vais donc regarder ce qu'est le protocol buffer et si je trouve pas je posterai sur developpez.com
Merci pour ta réponse :)
0