lire une image pgm - C++ - Programmation
Marsh Posté le 13-06-2003 à 21:55:21
Sinon google est pas down ??? hmm
le pgm c trivial surout en format ascii alors bon ...
bouge ton luc
Marsh Posté le 13-06-2003 à 21:55:30
une petite recherche avec google permet de trouver des trucs épatants : 'read pgm image format'
=> http://dmsun4.bath.ac.uk/resource/pgm.htm
Marsh Posté le 14-06-2003 à 09:26:52
c'est de la merde ce code!! d'habitude les mecs font du pseudo C++ avec des FILE*, la y a des fstream et qeu du scanf/strcmp
si je m'ecoutais, je vous démolirais chaque ligne de ce code
edit: j'attends de toi de tout réécrire en pur C ou en pur C++
Marsh Posté le 14-06-2003 à 10:52:37
++Taz a écrit : |
Toi, tu dois être prof dans la vie ?
Marsh Posté le 14-06-2003 à 13:27:55
ReplyMarsh Posté le 14-06-2003 à 13:53:30
Si ++Taz était pas là j'aurais posté le code que j'utilise...mias là il risque de me taper...
Marsh Posté le 14-06-2003 à 14:02:27
ReplyMarsh Posté le 14-06-2003 à 14:08:02
edit: sutout qu'en bon C++, le code est tres tres concis. si j'ai le temps, je traduit bien le code de ton lien (file moi un lien vers une image teste)
Marsh Posté le 14-06-2003 à 14:22:29
la lib de notre prof pour les tp d'images de maitrise info
j'ai pas la doc mais c'est compréhensible
http://iksv.net/.limace
Marsh Posté le 14-06-2003 à 14:23:46
Une image 126*131 exportée en pgm (par Paint Shop)
http://perso.numericable.fr/~raimopau/macoch.pgm
(cochon corse)
Marsh Posté le 14-06-2003 à 14:47:11
sans doute pété de bugs, aucune vérification d'erreur, ça vaut ce que ça vaut
Code :
|
si tant est que ça marche
Marsh Posté le 14-06-2003 à 15:06:45
skeye a écrit : Faudra que je pense à regarde ce code de plus près... |
à le vérifier (chez moi ça à l'air de fonctionner, mais je m'avance pas) et à la compléter aussi
Marsh Posté le 14-06-2003 à 15:12:34
Bon, merci pour toutes vos réponses...
Une petite précision : le source doit être écrit en C pur (pas de C++) et doit être super concis, lecture des données uniquement (pas de traitement de l'entête), pas besoin de détecter la taille de l'image (on la connaît c'est 640 x 240), donc en fait, il me faudrait un source qui fasse ça uniquement (pas de fioritures...). Le prog doit s'éxecuter le plus vite possible (sert en fait à l'asservissement d'une table robotique 2D). Une fois l'image stockée dans un tableau, je dois lui faire subir qques opérations, le tout en moins de 16 ms...
J'suis pas vraiment une brute en C (vous l'aurez constaté), donc merci encore pour vos coups de pouce...
Marsh Posté le 14-06-2003 à 15:14:43
t'es chaint bordel, c'est la dernireè fois qu'on me prendra ç ecrire un truc!!!!!!!!!!!!
Marsh Posté le 14-06-2003 à 15:20:28
En fait, je vais crrément vous expliquer le but du prog que je dois écrire, histoire de récupérer les bonnes idées éventuelles...
Voilà, il s'agit d'asservir une table robotique 2D à l'aide d'un traitement d'image. La table n'a pas de capteurs de position, c'est une caméra extérieure (qui film une image solidaire à la table) qui fait office de capteur.
L'image représente deux lignes (d'épaisseur inconnue) qui se coupent en un point dont on veut détecter la position. Le ligne se coupent à angle droit plus ou moins 10 degrés.
Je voudrais que le prog en C récupère les coordonnées du point d'intersection.
Idée : Traiter l'image avecune convolution par un filtre de Sobel, la seuiller et régression linéaire sur les points obtenus. On obtiendrait alors deux équations de droites dont le point d'intersection se trouve facilement...
Voilà, mais le hic, c'est que ces belles phrases ne me font pas du tout avancer puisque je n'ai aucune idée de la manière de coder ce bordel...
Je suis preneur pour toute suggestion...
Marsh Posté le 14-06-2003 à 15:30:25
GustyFotz a écrit : En fait, je vais crrément vous expliquer le but du prog que je dois écrire, histoire de récupérer les bonnes idées éventuelles... |
Commence par tes entrées/sorties de pgm, c'est simple...
Après il y a bcp de docs sur le net sur sobel, le seuillage, etc...à-partir d'une image discrète...
Marsh Posté le 14-06-2003 à 17:57:02
Le filtre de Sobel NxN c'etsune bete matrice carré correspondant à la derivée seconde d'une image discréte. Le seuillage c'est un bete test :
Si pixel(x,y) < Seuil alors Pixel(x,y) = 0 sinon = 255.
Ensuite pour determiner tes points d'intersections je te conseille la Transformée de Hough plutôt que la reg linéaire ...
Cette transformée pass du repére x,y a celui r,theta. Puis tu decompte le spoints de meme r et theta.
Marsh Posté le 13-06-2003 à 21:02:58
Salut tout le monde, j'ai besoin d'un p'tit coup de pouce.
Je cherche à écrire un source qui lit une image pgm (format : 240 col x 640 lign, 255 niv de gris) et écris chaque pixel dans un tableau de la même taille. Le tableau contient alors 240 x 640 octets.
Qqn pourrait-il m'aider svp ??
Celui qui me permet de me décoincer de mon problème, je lui raconte la blague des deux mouches...
Merci.