2016-05-16 1 views
1

Je suis nouveau traitement d'image.
J'ai actuellement un tampon d'image codé en Mono8.Convertir tampon d'image Mono8 au format affichable pour wx.Bitmap dans wxPython Phoenix en Python

Je suis en train de l'afficher à l'aide d'un wx.Bitmap. Cependant, je ne trouve que la documentation pour RGB, RGBA ou PNG.

  • Est-il possible de convertir un tampon Mono8 à un autre format affichable par un wx.Bitmap()?
  • Y at-il un autre widget capable d'afficher un tampon d'image Mono8?
+1

ce sont les formats d'image pris en charge http://www.wxpython.org/docs/api/wx.Image-class.html#__init__ ... vous aurez besoin d'utiliser un autre outil pour convertir votre mono8 en WX .Bitmap format compréhensible –

+0

Donc, devrais-je chercher convertir Mono8 à chacun de ces formats jusqu'à ce que je trouve celui qui correspond? Où puis-je en apprendre davantage sur les différences entre ces formats? – DRz

+0

imagemagic devrait pouvoir (je pense avoir vu une note à ce sujet ...) vous pourriez aussi être capable d'utiliser OpenCV pour le convertir en python ... vous avez juste besoin de le convertir en l'un de ces formats ... non Assurez-vous de ce que vous entendez par le convertir à chacun jusqu'à ce qu'il s'adapte ... vous ne savez pas ce qu'est un GIF ou JPEG? –

Répondre

0

J'ai trouvé comment le faire:

Mono8 est juste une table de la valeur de pixel de 0 à 255 sur un grayscale.
RVB est cette même table en fonction d'autres couleurs (rouge, vert et bleu).

Ainsi, la même image a 3 fois plus de valeurs RVB que dans Mono8.
=> Répétez la même valeur pour le composant de chaque pixel.

rgb = [ v for v in image_buffer for _ in range(3) ] 
rgb_ba = bytearray(rgb) 
bitmap.FromBuffer(height, width, rgb_ba) 

Merci à Martijn Pieters pour la help sur la compréhension de la liste!