
|
|
Auteur
|
Message
|
1
|
Vive la bière allemande
|
|
|
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."
|
|
ex-deus
|
|
|
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
|
|
Vive la bière allemande
|
|
|
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."
|
|
ex-deus
|
|
|
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
|
|
|
|
|
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...
|
|
Vive la bière allemande
|
|
|
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."
|
|
Vive la bière allemande
|
|
|
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."
|
|
ex-deus
|
|
|
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
|
|
ex-deus
|
|
|
|
selon le lien que tu as indiquer ca devrait marcher (en gros c l inverse de ce que t as fait la)
|
|
Vive la bière allemande
|
|
|
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
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."
|
|
ex-deus
|
|
|
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.
|
|
Vive la bière allemande
|
|
|
|
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."
|
|
|
|
|
|
ca se lit avec quoi un .ppm?
|
|
ex-deus
|
|
|
|
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.
|
|
Vive la bière allemande
|
|
|
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."
|
|
ex-deus
|
|
|
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"
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.
|
|
Manque d'energie ?!
|
|
|
|
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.
|
|
Vive la bière allemande
|
|
|
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."
|
|
Manque d'energie ?!
|
|
|
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
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.
|
|
2008, ...
|
|
|
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]
|
|
Vive la bière allemande
|
|
|
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."
|
|
Vendeur de larmes
|
|
|
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,
|
|
|
|
|
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!
|
|
|
|
|
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
|
|

|






|