2012-02-12 2 views
4

J'ai des données d'image provenant d'une connexion de socket en tant qu'octet []. Tous les exemples que j'ai vu en utilisant cvLoadImage() est passé un nom de fichier. Dois-je enregistrer chaque image dans un fichier et l'ouvrir à nouveau pour effectuer le traitement? Cela semble avoir beaucoup de frais généraux pour ce qui doit arriver, est-il possible de charger l'image à partir des données byte []?Charger l'image OpenCV (JavaCV) de byte [] n'est pas un fichier

Répondre

1

solution simple à la fin, vous pouvez utiliser la méthode suivante pour créer une image à partir d'un BufferedImage qui a résolu mon problème:

IplImage src = IplImage.createFrom(buffered); 
2

En supposant que les données sont codées dans un format standard comme JPG ou PNG, et en supposant que vous utilisez JavaCV, pour un tableau d'octets b, cela fonctionne ainsi:

IplImage image = cvDecodeImage(cvMat(1, b.length, CV_8UC1, new BytePointer(b)));

Questions connexes