[英]Image.open() cannot identify image file in python script file
我正在尝试执行此脚本
from PIL import Image
im = Image.open("image.jpg")
nx, ny = im.size
当我在 python shell 中运行它时它工作正常
pytesser_v0.0.1]#env python
>>> from PIL import Image
>>> im = Image.open("image.jpg")
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=46x24 at 0x7FA4688F16D0>
但是当我把它放在某个 test.py 文件中并像python test.py一样运行它时,我收到了这个错误
File "test1.py", line 17, in <module>
im = Image.open("image.jpg")
File "/usr/local/python.2.7.11/lib/python2.7/site-packages/PIL/Image.py", line 2309, in open
% (filename if filename else fp))
IOError: cannot identify image file 'image.jpg'
请帮我解决这个问题,谢谢
PS:之前我从 Imaging-1.1.7 setup.py 安装了 PIL,后来我安装了 Pillow,我认为问题在于机器上 PIL 和 Pillow 库的相互存在。
似乎 PIL 库尚未修复此错误。
这是我的解决方案:使用 OpenCV 库打开图像,然后将其转换为 PIL 图像
from PIL import Image
import cv2
image_path = 'Folder/My_picture.jpg'
# read image using cv2 as numpy array
cv_img = cv2.imread(image_path)
# convert the color (necessary)
cv_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)
# read as PIL image in RGB
pil_img = Image.fromarray(cv_img).convert('RGBA')
然后,您可以像使用常规 PIL 图像对象一样使用它。
确保“image.jpg”与“test1.py”在同一目录中。
如果不是,那么您可以移动它,或者将正确的目录放在Image.open()
中。
我有同样的问题。
这是因为 test.py 没有相同的路径名。 如果您在同一个文件夹中工作,它将起作用。
但是,我找到的解决方案是输入完整路径+文件名,以便明确。
"c:\...fullpath...\image.jpg"
你可以这样做:
from PIL import Image
import os
curDir = os.getcwd()
fileName = "image.jpg"
fn = curDir + "\\" + fileName
print(fn)
image = Image.open(fn)
image.show()
这行得通。 如果您发现更好,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.