在Python中打开JPG文件

3
from PIL import Image
import cv2 #EDIT, this line added

im = Image.open('withmed.jpg',0)
im.show('image',img)
k = cv2.waitkey(0)
if k == 27:
    cv2.destroyAll windows

我正在尝试打开桌面上保存的jpg图像。但是在运行这段代码时,出现了一个错误提示。
Traceback (most recent call last):
  File "/home/anusha/aswathy.py", line 5, in <module>
    cv2.imshow('image',img)
    error: /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/window.cpp:269: 
    error: (-215) size.width>0 && size.height>0 in function imshow

检查文件名中的字符大小写?完整的源代码(不包括简化版本)和跟踪堆栈可以帮助我们找出错误。 - dmitry_romanov
1
你能否调整一下你的问题,并向我们展示完整的错误堆栈跟踪(如果有的话)?这可以在调试中大有帮助。 - Timusan
问题已经被编辑,错误已经修正。 - Aswathy
1
@Hugo 谢谢,已经可以工作了... im = Image.open('withmed.jpg') 是正确的语句。 - Aswathy
@Aswathy:太好了,我已经将它添加为一个答案,如果您想接受它的话。 - Hugo
显示剩余4条评论
2个回答

3

改为:

im = Image.open('withmed.jpg',0)

尝试:

im = Image.open('withmed.jpg')

如果那样做没有效果,可以在之后加上print(im),并告诉我们它的输出内容。

0
除了PIL,image io、OpenCV和skimage也是强大的工具,每个工具都有不同的应用。 特别是如果你想处理图像并使用机器学习,imageio非常高效。 对于image io:
import imageio.v3 as iio
im = iio.imread('withmed.png')

而对于skimage:
from skimage import io
im = io.imread('withmed.png')

而对于OpenCV:
import cv2 as cv
cv.imread('withmed.png')

一个重要的事情要知道的是,输出类型是不同的,虽然 opencv、skimage 和 imageio 的输出是 numpy 数组,但 PIL 的输出是一个图像类文件:"PIL.JpegImagePlugin.JpegImageFile"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接