首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Image.open()无法识别python文件中的图像文件

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

Stack Overflow用户
提问于 2016-05-09 08:02:08
回答 3查看 7.7K关注 0票数 3

我正在执行这个脚本

代码语言:javascript
复制
from PIL import Image
im = Image.open("image.jpg")
nx, ny = im.size

当我在python shell中运行它时,它运行得很好。

代码语言:javascript
复制
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那样运行它时,就会得到这个错误。

代码语言:javascript
复制
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:早些时候我从Image-1.1.7 setup.py安装了PIL,后来我安装了枕头,我认为问题在于机器上存在PIL和枕头库。

EN

回答 3

Stack Overflow用户

发布于 2022-02-12 20:32:46

看来PIL库还没有修复这个错误。

以下是我的解决方案:使用OpenCV库打开映像,然后将其转换为PIL映像

代码语言:javascript
复制
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图像对象一样。

票数 1
EN

Stack Overflow用户

发布于 2016-05-09 09:06:42

确保"image.jpg“与"test1.py”位于同一个目录中。

如果不是,那么您可以移动它,或者将正确的目录放在Image.open()中。

票数 0
EN

Stack Overflow用户

发布于 2018-08-05 10:30:20

我也有同样的问题。

这是因为test.py没有相同的路径名。如果您在同一文件夹中工作,它将工作。

但是,我发现的解决方案是在完整路径+文件名中添加,这样它就没有歧义。

代码语言:javascript
复制
"c:\...fullpath...\image.jpg"

你可以这样做:

代码语言:javascript
复制
from PIL import Image
import os

curDir = os.getcwd()
fileName = "image.jpg"
fn = curDir + "\\" + fileName

print(fn)

image = Image.open(fn)
image.show()

这个很管用。如果你发现更好的话请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37110509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档