繁体   English   中英

Image.open() 无法识别 python 脚本文件中的图像文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM