我正在尝试获取我的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图像和一个饱和度图像。有没有办法用我的色调和饱和度值来做到这一点?
答案 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>