Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
825 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Manipulation de pixels avec Numpy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Manipulation de pixels avec Numpy

n°2196376
mechkurt
Posté le 03-07-2013 à 14:24:26  profilanswer
 

Bonjour je démarre en python pour faire des choses coté serveur que je faisias en javascript coté client (plus de détail dans blahblah@web ici et la)
 
Je suis donc partis sur python qui permet d’extraire les images en tableau rapidement, de stocker ces tableaux et de les retrouver encore plus rapidement, et de faire du calcul "matriciel" au lieu d’itérer sur les pixels.
 
Par contre j'ai attaqué Python aujourd'hui, et pour apprendre à développer...
 
 
...j'ai fait les beaux arts ! ^^
 
 [:alkatraz] et mon ami mais j'ai quand même du mal des fois avec les réponses que je trouves ! ^^
 
J'en suis actuellement à traduire l'algo mais apparemment j'ai un problème d’arrondis "automatique" :
 

Code :
  1. import Image, numpy, time
  2. start = time.clock()
  3. DataA = numpy.load("exports/A.npy" )
  4. for prop in DataA:
  5.     print(prop)
  6. DataB = numpy.load("exports/B.npy" )
  7. buffer = numpy.zeros((713, 950, 3), dtype=numpy.uint8)
  8. buffer = 255 * numpy.power((DataA * DataB / 255), 0.5)
  9. for prop in buffer:
  10.     print(prop)
  11. #Image.fromarray(buffer).save('test.png')
  12. print('Processed in ' , time.clock()-start , ' seconds')


Et là j'ai mon tableau de buffer qui est remplis de 0.
 
En javascript je n'avais pas ce problème car il devait être en float tout le long et au moment d'aplliquer les float aux pixel avec putimagedata, il devait round.
 
Numpy est moins coulant, il faut donc que je lui dise de travailler en flottant, mais je sais pas comment faire...


Message édité par mechkurt le 03-07-2013 à 15:06:34

---------------
D3
mood
Publicité
Posté le 03-07-2013 à 14:24:26  profilanswer
 

n°2196384
mechkurt
Posté le 03-07-2013 à 14:38:54  profilanswer
 

Ok, j'ai trouvé en rajoutant des 255.0 la ou c'est nécessaire et castant en int avec Image.fromarray(buffer.astype(numpy.uint8)).save('test.png')
 
Je passe pas tout de suite en résolut car je suis sans doute pas encore sortis de l'auberge ! ^^
 
PS: Merci Shinuza !


---------------
D3
n°2196417
mechkurt
Posté le 03-07-2013 à 16:14:19  profilanswer
 

Mon résultat "en python" est quand même différent de celui que j'avais en "en javascript"
 
C'est surement un problème d'arrondis mais comme je ne connait pas les règles d'arrondis du js, j'ai beau tâtonné je n'arrives pas à mon résultat.
 
Par contre je suis à 1,5 s de temps total de génération sur une machine poussive, ça me semble jouable (avec un peu de cache pour les paramètres les plus demandé).


---------------
D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Manipulation de pixels avec Numpy

 

Sujets relatifs
[XUL] Manipulation textbox et valueproblème de manipulation/réorganisation de fichiers
Langage R : manipulation d'un zooBASH : manipulation de variable
Aide script JS (viewport width et manipulation)Python numpy ecriture résultat avec itération
Interpolation de Fourier avec numpymanipulation de chaine de caracteres
[Améliorations] Programme de manipulation de fichiers[lazarus] Manipulation de chaine et extraction de caractère
Plus de sujets relatifs à : Manipulation de pixels avec Numpy


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR