图像模块(来自PIL)无法识别模式=“HSV”

时间:2017-02-07 17:45:39

标签: python image python-imaging-library pillow hsv

我正在尝试获取我的HSV值并从中制作图像。这是我的代码:

Name

Image.new表示需要模式:http://pillow.readthedocs.io/en/4.0.x/handbook/concepts.html#concept-modes

但它不会将“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"

有没有其他人对Image模块有这个问题?

其他: 我想创建一个Hue图像和一个饱和度图像。有没有办法用我的色调和饱和度值来做到这一点?

1 个答案:

答案 0 :(得分:1)

您正在引用Pillow文档,但您没有使用Pillow - 您使用的是原始PIL版本1.1.7,如错误消息所示:

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

并根据文档,它不支持HSV作为模式(参见here)。

卸载PIL,安装Pillow,然后你应该可以

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>