OpenCV Python reseau

Fermé
Benq360 Messages postés 96 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 15 décembre 2012 - 13 déc. 2012 à 17:30
Benq360 Messages postés 96 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 15 décembre 2012 - 15 déc. 2012 à 11:14
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 96 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 15 décembre 2012 3
14 déc. 2012 à 21:46
personne ne sait comment convertir l'image en chaîne de caractères afin de l'envoyer par socket ?
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
14 déc. 2012 à 23:55
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 96 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 15 décembre 2012 3
15 déc. 2012 à 11:14
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