这是我的代码
from PIL import Image
pil_im = Image.open('data/empire.jpg')
Run Code Online (Sandbox Code Playgroud)
我想对它进行一些图像处理,然后在屏幕上显示它.
我在python笔记本中显示PIL图像有问题.
我试过了:
print pil_im
Run Code Online (Sandbox Code Playgroud)
只是
pil_im
Run Code Online (Sandbox Code Playgroud)
但两个人都给我:
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=569x800 at 0x10ECA0710>
Run Code Online (Sandbox Code Playgroud) 当我使用easy_install或buildout安装PIL时,它会以这种方式安装,我必须执行'import Image',而不是'来自PIL import Image'.
但是,如果我做"apt-get install python-imaging"或使用"pip -E test_pil install PIL",一切正常.
以下是我尝试使用virtualenv安装PIL的示例:
# virtualenv --no-site-packages test_pil
# test_pil/bin/easy_install PIL
# test_pil/bin/python
Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL
Run Code Online (Sandbox Code Playgroud)
我明白了,easy_install将PIL打包到Egg中,而PIP则没有.与buildbot相同,它使用鸡蛋.
如何使用easy_install或buildout正确安装PIL?
我已经尝试了很多在网上发布的解决方案,它们不起作用.
>>> import _imaging
>>> _imaging.__file__
'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd'
>>>
Run Code Online (Sandbox Code Playgroud)
所以系统可以找到_imaging但仍然不能使用truetype字体
from PIL import Image, ImageDraw, ImageFilter, ImageFont
im = Image.new('RGB', (300,300), 'white')
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('arial.ttf', 14)
draw.text((100,100), 'test text', font = font)
Run Code Online (Sandbox Code Playgroud)
引发此错误:
ImportError: The _imagingft C module is not installed
File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__
raise ImportError("The _imagingft C module is not installed")
Run Code Online (Sandbox Code Playgroud) 我正在寻找如何重新采样以新尺寸表示图像数据的numpy数组,最好选择插值方法(最近,双线性等).我知道有
scipy.misc.imresize
Run Code Online (Sandbox Code Playgroud)
这通过包装PIL的调整大小功能来完成这一点.唯一的问题是,因为它使用PIL,numpy数组必须符合图像格式,给我最多4个"颜色"通道.
我希望能够使用任意数量的"颜色"通道调整任意图像的大小.我想知道是否有一种简单的方法可以在scipy/numpy中执行此操作,或者如果我需要自己滚动.
关于如何自己编造一个我有两个想法:
scipy.misc.imresize分别在每个通道上运行的函数scipy.ndimage.interpolation.affine_transform对于大数据,第一个可能会很慢,而第二个似乎不提供除样条之外的任何其他插值方法.
我得到了:
IOError: decoder zip not available
Run Code Online (Sandbox Code Playgroud)
当我尝试绘制图像并保存到PIL中的jpeg时.有关如何解决此问题的任何想法?在查看/上传图片时,PIL过去一直很适合我.
我需要一个python例程,可以打开并将TIFF图像导入到numpy数组中,这样我就可以分析和修改包含的数据,然后再将它们保存为TIFF.(它们基本上是灰度的光强度图,表示每个像素的相应值)
我试图找到一些东西,但没有关于TIFF的PIL方法的文档.我试图搞清楚,但只有错误的模式/文件类型不支持错误.
我需要在这里使用什么?
我正在尝试将图像转换PIL为OpenCV格式.我正在使用OpenCV 2.4.3.这是我到目前为止所尝试的.
>>> from PIL import Image
>>> import cv2 as cv
>>> pimg = Image.open('D:\\traffic.jpg') #PIL Image
>>> cimg = cv.cv.CreateImageHeader(pimg.size,cv.IPL_DEPTH_8U,3) #CV Image
>>> cv.cv.SetData(cimg,pimg.tostring())
>>> cv.cv.NamedWindow('cimg')
>>> cv.cv.ShowImage('cimg',cimg)
>>> cv.cv.WaitKey()
Run Code Online (Sandbox Code Playgroud)
但我认为图像没有转换为CV格式.窗口向我显示一个大的棕色图像.在将图像转换PIL为CV格式时我在哪里出错了?
另外,为什么我需要键入cv.cv访问功能?
我正在尝试安装所述库以供Python使用.我尝试下载运行的Windows的可执行安装程序,但表示它没有找到Python安装.然后尝试注册(http://effbot.org/zone/python-register.htm)Python,但脚本说它无法注册(尽管键出现在我的寄存器中).
然后我尝试下载源代码包:我运行setup.py构建并且它可以工作,但是当我运行setup.py install时它会说:
running install
running build
running build_py
running build_ext
building '_imaging' extension
error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)
我能做什么?
UPDATE(2014年5月):就像一些评论和回答说,公益诉讼是目前unmantained,现在要走的路是用枕头(https://pypi.python.org/pypi/Pillow/,pip install pillow).
我需要拍摄一张图片并将其放置在新生成的白色背景上,以便将其转换为可下载的桌面壁纸.所以这个过程会:
在PIL中,我看到了ImageDraw对象,但没有任何迹象表明它可以将现有图像数据绘制到另一个图像上.任何人都可以推荐的建议或链接?
这是一些示例代码:
import tkinter as tk
from PIL import Image, ImageTk
window = tk.Tk()
image = Image.open(r"VC.png")
image = image.resize((20, 20), Image.ANTIALIAS)
tk_image = ImageTk.PhotoImage(image)
image_label = tk.Label(window, image=tk_image)
image_label.pack()
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
这是错误:
Traceback (most recent call last):
File "<module1>", line 19, in <module>
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'
Run Code Online (Sandbox Code Playgroud)