2017-02-07 1 views
0

J'essaie de prendre mes valeurs HSV et d'en faire une image. Voici mon code:Module d'image (de PIL) ne reconnaissant pas le mode = "HSV"

from __future__ import division 
from PIL import Image 
import numpy as np 
import colorsys 

fp = open('pixels.txt', 'w') 
fp2 = open('hsv.txt', 'w') 
im = Image.open('colorimage.png') 
imrgb = im.convert("RGB") 
scale = 255.0 

pixels = list(imrgb.getdata()) 
width, height = im.size 
pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)] 

for pixel in pixels: 
     for x in pixel: 
       print>>fp, x 
       x = [x[0]/255,x[1]/255,x[2]/255] 
       y = colorsys.rgb_to_hsv(*x) 
       w = [y[0]*360, y[1]*100, y[2]*100] 
       h,s,v = [y[0]*360, y[1]*100, y[2]*100] 
       print>>fp2, w 

newimg = Image.new("HSV", im.size) 

print "done" 

Le Image.new dit qu'il faut modes: http://pillow.readthedocs.io/en/4.0.x/handbook/concepts.html#concept-modes

Mais il ne lit pas "VHS" comme mode. Il dit cela comme l'erreur:

Traceback (most recent call last): 
    File "RGBtoHIS.py", line 25, in <module> 
    newimg = Image.new("HSV", im.size) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.6-x86_64.egg/PIL/Image.py", line 1763, in new 
    return Image()._new(core.fill(mode, size, color)) 
ValueError: unrecognized mode 

Est-ce que quelqu'un d'autre a eu ce problème avec le module Image?

Autre: Je souhaite créer une image de teinte et une image de saturation. Y a-t-il un moyen de le faire avec les valeurs de teinte et de saturation que j'ai?

Répondre

1

Vous faites référence à la documentation d'oreiller, mais vous ne l'utilisez Pillow - vous utilisez la version originale PIL 1.1.7, comme indiqué par votre message d'erreur:

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ 
site-packages/PIL-1.1.7-py2.7-macosx-10.6-x86_64.egg/PIL/Image.py", line 1763, in new 

et selon sa documentation, il ne prend pas en charge HSV en tant que mode (voir here).

Désinstaller PIL, installez Pillow, et vous devriez être en mesure de faire

In [12]: PIL.__version__ 
Out[12]: '3.4.2' 

In [13]: Image.new("HSV", (100,100)) 
Out[13]: <PIL.Image.Image image mode=HSV size=100x100 at 0x7F4FA00F4F60> 
+0

merci pour l'aide! Comment est-ce que j'installe Pillow? – hiquetj

+0

J'ai également installé PIL d'un tiers, comment puis-je le désinstaller? – hiquetj

+0

sudo easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz --- J'ai utilisé cette commande pour installer PIL parce que je ne pouvais rien faire fonctionner – hiquetj