ouvrir un fichier JPG en C - C - Programmation
Marsh Posté le 05-12-2006 à 16:39:13
oui, en implémentant l'algo de lecture du jpeg.
fopen ouvre un fichier point barre.
La méthode à utiliser est de trouver une bibliothèque qui fait cette chose pour toi, comme Jasper par exemple.
Marsh Posté le 05-12-2006 à 16:45:24
boullette38 a écrit : je dois faire un projet en C qui effectue un traitement d'image, plus précisement de la corrélation de phase entre 2 images. Le programme doit donc ouvrir les 2 images. Hors c'est la que je bloque. Je précise que j'ai déjà essayé d'ouvrir une image mais c'est pas du tout concluant. |
Tu bloques où ? Parce que oui, fopen() permet d'ouvrir un fichier binaire en lecture ("rb" ).
http://mapage.noos.fr/emdel/notes.htm#fichiers
Mais ensuite, il faut le lire, facile avec fgetc() ou fread(), et surtout interpréter les données, et c'est là que les ennuis commencent...
Le format JPG est compliqué et il faut en connaitre la spécification détaillée pour prétendre le décoder et en créer une image 'plate'.
http://www.wotsit.org/
(purée, y'a de plus en plus de pub sur ce site, ça devient pénible... va falloir faire un miroir...non, j'ai rien dit)
Ceci-dit, je suis à peu près certain qu'il existe des outils 'à la ligne de commande' qui savent convertir un fichier JPG en BMP, par exemple, ce qui est beaucoup plus facile à traiter... A moins que le sujet de l'exercice soit justement de lire un fichier JPG...
Marsh Posté le 05-12-2006 à 16:55:31
Emmanuel Delahaye a écrit : Ceci-dit, je suis à peu près certain qu'il existe des outils 'à la ligne de commande' qui savent convertir un fichier JPG en BMP, par exemple, ce qui est beaucoup plus facile à traiter... A moins que le sujet de l'exercice soit justement de lire un fichier JPG... |
Jasper possède un ensemble de samples qui font ce genre de truc les doigts dans le nez.
http://www.ece.uvic.ca/~mdadams/jasper/
Marsh Posté le 05-12-2006 à 17:05:48
en fait, j'ai une camera intelligente (avec un dsp intégré) et en sortie, j'ai un flux vidéo qui a comme caractéristique de sortir une séquence d'images JPG (la référence de la caméra: VCM50 de Vision Components, pour plus de précision).
Le but final sera de faire du traitement temps réel sur le flux vidéo directement afin de trouver le centre d'un objet (qui sera filmé en continue).
La contrainte donc, c'est que je dois bosser en C.
Voila le pourquoi du comment je dois bosser sur du JPG directement.
Je précise que les images sur lesquelles je vais devoir travailler auront déjà un pré-traitement et ressembleront à ça: fond blanc et countour des objets à traiter en noir, donc la conversion en BPM ne sera pas nécessaire je pense (et puis ça prendrait trop de temps de calcul de toute facon).
Marsh Posté le 05-12-2006 à 17:15:03
à mon avis le miens pour faire du TI sans tout recoder c'est opencv
http://tuxlr.no-ip.org/opencv.php?lang=fr
en deux pov copier coller tu as une appli qui fait pas mal de truc, y 'a de bon tut partout sur le net et je te recommande le forum sur yahoo...
Marsh Posté le 05-12-2006 à 16:36:31
salut!
je dois faire un projet en C qui effectue un traitement d'image, plus précisement de la corrélation de phase entre 2 images. Le programme doit donc ouvrir les 2 images. Hors c'est la que je bloque.
J'ai fais de multiple recherche pour savoir si fopen() pouvait ouvrir une image en JPG, mais rien trouvé. Donc je me tourne vers vous: peut-on ouvrir une image JPG avec la fonction fopen() ? si non, quelle est la méthode à utiliser ?
Je précise que j'ai déjà essayé d'ouvrir une image mais c'est pas du tout concluant.
merci!