01net    Web


Actuellement en ligne : 248 Utilisateurs dont 13 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> [C] regarder une image pixel par pixel
Auteur
Message
 
<     1       >
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 19:05:51  
Voter pour ce message
bonjour a tous



j'ai une grande quantité de petites images noir et blanc (4000) de taille assez petite (15*20 pixels environ). Il faudrait que je mette les images sous forme d'un tableau (de taille 15*20 ici).

En clair, je veux regarder pixel par pixel et suivant le niveau de gris, je donne une valeur à la case du tableau (le nombre entier entre 0 et 255 qui traduit la couleur par exemple).

Tout doit etre mis dans un unique fichier texte (il sera un peu crade de fichier), mais bon une fois que je sais faire ca pour une image, une boucle suffira.



Vous avez une idée de comment faire ca ? Ou deja de comment lire une image pixel par pixel ?



Merci
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 19:09:33  
Voter pour ce message
hum, je m'y connait pas de la mort mais matte , des sites comme http://www.linuxgraphic.org/

ou http://nate.scuzzy.net/ tu trouvera des infos (openGL).

edit: encore un http://www.xmission.com/~nate/opengl.html
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 19:33:00  
Voter pour ce message
y a pas moyen de passer par qqch de plus simple qu'opengl ?

paske en programmation j'y connais pas grand chose, et opengl c'est compliqué non ?

Pour imprimer dans une image bmp c'est assez simple, y a pas moyen de faire pareil pour la lecture ?
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 19:53:11  
Voter pour ce message
Si t as des bonnes notions d'algèbre linéaire tu devrait t en sortir assez facilement.

Mais je t avait prevenu , je m'y connait tellement dans ce domaine (meme pas du tout), openGL est ce qu'il me semble le plus approprié,

vu que je c qu'il inclut des méthodes pour travailler sur des textures dans plusieurs format.

Mais je pourrait t induire totalement en erreur, mais en tout cas les sites que je t filer (en tout cas les deux premier) traite de l imagerie en générale,t'y trouvera ptete ton bonheur :)
kronenbourg
  
   
      ?   @     Posté le 11/03/2003 19:56:41  
Voter pour ce message
Et comment on fait pour créer un .bmp? : )



Si tu ne trouves pas je pourrai voir avec mon coloc, il a un cours d'analyse d'image cette session...
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 20:05:21  
Voter pour ce message
Nico5779 a écrit :
Si t as des bonnes notions d'algèbre linéaire tu devrait t en sortir assez facilement.

Mais je t avait prevenu , je m'y connait tellement dans ce domaine (meme pas du tout), openGL est ce qu'il me semble le plus approprié,

vu que je c qu'il inclut des méthodes pour travailler sur des textures dans plusieurs format.

Mais je pourrait t induire totalement en erreur, mais en tout cas les sites que je t filer (en tout cas les deux premier) traite de l imagerie en générale,t'y trouvera ptete ton bonheur :)





algebre linéaire j'ai de tres bonnes bases mais je veux qd meme faire qqch de tres simple, et opengl ca m'a l'air d'etre plus du genre artillerie lourde
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 20:08:15  
Voter pour ce message
kronenbourg a écrit :
Et comment on fait pour créer un .bmp? : )



Si tu ne trouves pas je pourrai voir avec mon coloc, il a un cours d'analyse d'image cette session...





4 messages avant la fin du topic :

http://forum.hardware.fr/forum2.php3?post=29992&cat=10&config=&in(...)
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 20:17:51  
Voter pour ce message
certes ,

c vrai que tu peux t ensortir en analysant chaque bytes du fichiers, peut etre qu'un fichier bmp, c simplement le code de chaque couleur de chaque pixel, sur le nombre de bits indiquer(1,4,16,ou 32 suivant la facon dont tu les a enregistrer), donc tu peux lire fichier char par char, mais y faut encore savoir ou commence la lecture (ou s arrette les header),

tu peux deja essaye avec une image toute noir en l'ouvrant dans le notepad, et voir si tu peux en tirer qqch, genre si tu voit une grosse quantité de 0 qui se suivent ca peut ptete marcher.

Mais ca n'est qu'une supposition.

en dehors de ca j'ai pas idée :sweat:
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 20:18:58  
Voter pour ce message
selon le lien que tu as indiquer ca devrait marcher (en gros c l inverse de ce que t as fait la)
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 20:25:36  
Voter pour ce message
Nico5779 a écrit :
certes ,

c vrai que tu peux t ensortir en analysant chaque bytes du fichiers, peut etre qu'un fichier bmp, c simplement le code de chaque couleur de chaque pixel, sur le nombre de bits indiquer(1,4,16,ou 32 suivant la facon dont tu les a enregistrer), donc tu peux lire fichier char par char, mais y faut encore savoir ou commence la lecture (ou s arrette les header),

tu peux deja essaye avec une image toute noir en l'ouvrant dans le notepad, et voir si tu peux en tirer qqch, genre si tu voit une grosse quantité de 0 qui se suivent ca peut ptete marcher.

Mais ca n'est qu'une supposition.

en dehors de ca j'ai pas idée :sweat:





quand j'ouvrais un bmp généré par cette maniere je ne voyais pas du tout ce que j'avais mis, ce n'etait que des signes cabalistiques. Je me demande donc si cette méthode va bien marcher...
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 20:32:33  
Voter pour ce message
ben ske j imaginait aussi, mais visiblement la facon dont tu le crée ca devrait correspondre.

G essayer avec paint et notepad, ca pas l'ai d'etre ca, mais peut etre qu'avec une image crée par ton programme, ca fonctionnera.
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 20:35:59  
Voter pour ce message
je demanderai a un ami, je crois qu'il a du se servir de ca
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
kronenbourg
  
   
      ?   @     Posté le 11/03/2003 20:39:19  
Voter pour ce message
ca se lit avec quoi un .ppm?
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 20:43:53  
Voter pour ce message
en tout cas si ce sont des image crée avec l'algo de ton autre topic ca marche d'office pasque tu n as qua relire que tu écrit, comme indiquer les "P6\n200 200\n255\n" tu les prend pas en compte, tu commence a remplir ta matrice avec les char qui suivent.
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 11/03/2003 20:57:21  
Voter pour ce message
Nico5779 a écrit :
en tout cas si ce sont des image crée avec l'algo de ton autre topic ca marche d'office pasque tu n as qua relire que tu écrit, comme indiquer les "P6\n200 200\n255\n" tu les prend pas en compte, tu commence a remplir ta matrice avec les char qui suivent.





oui mais quand je voulais lire le fichier avec emacs par ex, ca me mettait pas ce que j'avais écrit...
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 11/03/2003 21:18:22  
Voter pour ce message
wai , bizarre, c ptete a cause des charcter speciaux.

En fait j'avait pas l 'esprit que le char(0) c t pas un "0" :whistle:

c un peu normal que dans un editeur ca ne soit pas explicite.

Avec un autre programme utilisateur qui relit le fichier en binaire ca marchera.
skyman
  Manque d'energie ?!
  :-)
      ?   @     Posté le 12/03/2003 21:15:33  
Voter pour ce message
On a du faire ca a notre DS d'info y'a a peine deux semaines. Si tu veux quand j'aurai le corrige je te le filerai car apparemment ce que j'avais fait n'etait pas bon.
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 13/03/2003 07:33:53  
Voter pour ce message
merci ca m'interesse

pour l'instant j'essaie de le faire en php, ca va marcher je pense mais ca va etre tres lent
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
skyman
  Manque d'energie ?!
  :-)
      ?   @     Posté le 13/03/2003 12:14:21  
Voter pour ce message
Library a écrit :
merci ca m'interesse

pour l'instant j'essaie de le faire en php, ca va marcher je pense mais ca va etre tres lent





Tu fais en fonction de ce que t'as dit Gautier ?



certes ,

c vrai que tu peux t ensortir en analysant chaque bytes du fichiers, peut etre qu'un fichier bmp, c simplement le code de chaque couleur de chaque pixel, sur le nombre de bits indiquer(1,4,16,ou 32 suivant la facon dont tu les a enregistrer), donc tu peux lire fichier char par char, mais y faut encore savoir ou commence la lecture (ou s arrette les header),

tu peux deja essaye avec une image toute noir en l'ouvrant dans le notepad, et voir si tu peux en tirer qqch, genre si tu voit une grosse quantité de 0 qui se suivent ca peut ptete marcher.

Mais ca n'est qu'une supposition.

en dehors de ca j'ai pas idée :sweat:




Car moi je ferai un peu pareil. C'est a dire qu'il faut que tu ouvres ton fichier avec je sais pas quel log qui a retranscrit les pixels en octet. (un pixel = un octet) et apres tu analyses chaque octet.
Gautier
  2008, ...
  :-)
      ?   @     Posté le 13/03/2003 14:37:00  
Voter pour ce message
skyman a écrit :




Tu fais en fonction de ce que t'as dit Gautier ?



.........



c pa moi, c nico qui a dit ca ;)
-------
[Chaque minute qui passe est une occasion de changer le cours de sa vie]
[Les préjugés sont les ennemis du bon sens]
Library
  Vive la bière allemande
  :-)
      ?   @     Posté le 13/03/2003 22:15:40  
Voter pour ce message
le C j'y connais pas grand chose, malheureusement

j'ai commencé a programmer en php et la le prog tourne depuis 35 minutes

quand il enregistre pas toutes les données dans un tableau ca lui pose pas trop de probleme ( < 5 minutes de calcul) mais la enregistrer un tableau de 1 million de cases ca a l'air de le déranger un peu.

Je vais peut etre essayer d'imprimer au fur et a mesure dans mon fichier texte et je ferai tout le traitement des données en C (apres faut que je supprime les entrées correspondant aux pixels communs a toutes les images, que je calcule la moyenne m de couleur sur chaque pixel, l'écart type s de couleur sur chaque pixel et que je transforme l'entrée c de chaque image en (c-m)/s, ceci pour chaque pixel)
-------
Coluche : "Le capitalisme, c'est l'exploitation de l'homme par l'homme. Le syndicalisme, c'est le contraire."
e-deby
  Vendeur de larmes
  Groupe :  Equipe 01net
  :-)
      ?   ^   @     Posté le 13/03/2003 22:30:13  
Voter pour ce message
le php n'est absolument pas fait pour ce genre de traitement plutot long



J'ai essaye de regarder en C, mais j'ai pas trouve les bibliotheques a utiliser
-------
buy it, use it, break it, fix it, trash it, change it, upgrade it, charge it, pawn it, zoom it, press it, snap it, work it, erase it, write it, get it, paste it, save it, load it, check it, rewrite it, plug it, play it,
rainiou
  
   
      ?   @     Posté le 19/06/2007 14:57:01  
Voter pour ce message
Salut a tous!

En effet, PHP n'est pas fait pour ca, tu risque d'ailleurs d'avoir un probleme lie au temps d'execution (un time out = 504 ? je sais plus le code erreur)...
bref, en ce moment j'essaie d'implementer une lecture de flux dans ARToolKit pour travailler sur des videos... j'ai le meme pb aue toi pour le moment: plein d'image a mettre de bout en bout...

ma solution (non finale) pour le moment prend du temps au chargement mais apres lit en boucle et tu peux donc faire tes tests tout de meme dessus:

Le tout est fait en C++

- Utilises les CImages
- charge 1 a 1 chaque image (CImage::Load(...,...,...) <- MSDN )
- recupere pixel par pixel les valeurs RGB (ou BGR, fais attention).
- stock tout ca dans un tableau genre tab[img_id][x][y]
- apres tu peux jouer en boucle et traiter tes images en flux constant

ok c'est pas super comme bricolage,surtout le temps de chargement mais j'essaie de convertir les images en 1 fichier de byte.

Sinon tu peux toujours essayer la DLL avicap.dll ou avicap32.dll. Le doc de MSDN te montrera comment creer un AVI et le recharger pour le jouer...

Ca va etre chaud si tu ne programmes pas beaucoup... bon courage!

rainiou
  
   
      ?   @     Posté le 19/06/2007 15:01:31  
Voter pour ce message
juste un mot encore par rapport a ton time out de php... 1million ca fait beaucoup pour lui :)
meme certaines mailing liste s'envoient par "paquet"
tu peux traiter 1 image a la fois et ecrire en fin de fichier (meme en C remarque lol, il te faudra utiliser iostream).

bon courage
<     1       >

01net > Forum de 01net > Programmation et développement > C/C++
> [C] regarder une image pixel par pixel

Aller à :

Page générée en : 0.112s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Convertisseur PDF
Créez des documents PDF et transformez-les aux formats Word, Excel, Powerpoint, ...
Jeux
Jouer les marionnettistes en contrôlant la vie d'un couple ou d'un trio de colocataires. Télécharger !