2010-12-03 37 views
4

Je voudrais quantifier une image 24 bits à une profondeur de couleur 16 bits en utilisant Python Imaging.Python Imaging, comment quantifier une image à une profondeur de 16 bits?

PIL utilisé pour fournir une méthode im.quantize (couleurs, ** options) mais cela a été dépréciée pour im.convert out = ("P", palette = Image.ADAPTIVE, couleurs = 256)

Malheureusement, 256 est le nombre MAXIMUM de couleurs que im.convert() va quantifier (8 bits seulement).

Comment puis-je quantifier une image 24 bits jusqu'à 16 bits en utilisant PIL (ou similaire)?

grâce

+3

Je ne pense pas que PIL supporte les graphiques 16 bits ... http://www.pythonware.com/library/pil/handbook/concepts.htm#mode –

+2

24 bits en termes de couleur signifie normalement 8 bits par couleur - c'est-à-dire 8 bits rouge, 8 bits vert et 8 bits bleu. Une profondeur de couleur de 16 bits signifie normalement 16 bits par couleur, c'est-à-dire que vous augmentez sans diminuer la profondeur de couleur. Je ne sais pas si PIL gère cela ou pas. – neil

+0

Les images 16 bits ne sont pas prises en charge par PIL, que vous vouliez dire un total de 16 bits (généralement 3 bits RVB, parfois 1 bit alpha, parfois 4 bits G) ou 16 bits chaque RGB. Les modes disponibles sont listés ici: http://www.pythonware.com/library/pil/handbook/concepts.htm – kindall

Répondre

3

Vous pourriez vouloir regarder dans la conversion de votre image à un tableau numpy, effectuer votre quantisation, la conversion puis de nouveau à PIL.

Il existe des modules en numpy pour convertir des images PIL.

+0

Cela ressemble à une bonne solution. Je remarque aussi que OpenCV pourrait être plus utile que le PIL pour le traitement d'image ici. – Rich