通过cmd窗口在Python中打开图像

时间:2014-02-13 06:45:10

标签: python image scipy python-imaging-library

我想使用PIL或scipy库来打开和查看图像(以及来自numpy和scipy的东西),但是我无法有效地运行程序并让它工作。我在互联网上关注的每件事都给了我不同的结果,这让我发疯了

首先,我安装了WinPython。我讨厌“spyder”和IPython接口,我宁愿在Notepad ++上编写我的代码并在命令行上运行它。

如果我在spyder界面上运行这组命令,图像将在图像查看器中打开:

from scipy import misc
l = misc.lena()
misc.imsave('lena.png',l)
plt.imshow(l)
plt.show()

图片:

enter image description here

我没有最微弱的线索,为什么它的颜色是这样的,因为原始图像是灰度的,但一次只有一个问题。

当我运行相同的程序时(在所有之后spyder最初提供的导入),同一个图像查看器打开,但立即关闭 ....


另一个教程。如果我在命令行上运行此代码,则弹出默认的Windows 8图像查看器(我不想要)并显示图像(正确,不像上面那样着色):

from PIL import Image, ImageFilter

original = Image.open("lena.png")
blurred  = original.filter(ImageFilter.BLUR)

original.show()
blurred.show()

互联网根本没有帮助我。所有教程都使用我不习惯的IPython,每个教程都使用不同的方式来打开和查看图像。由于我是新手,只是按照教程,并没有真正了解我在做什么,如果有人可以帮助我,我会很感激,关注以下几点:

  • 为什么cmd line image viewer打开和关闭,而在spyder界面上却没有?
  • 如何在没有这么多头疼的情况下运行问题来简单地查看简单的图像?
  • 如何使用图像(scipy,PIL,..),以及如何运行/编写程序?

1 个答案:

答案 0 :(得分:2)

misc.lena()的docstring中的示例实际上是:

>>> import matplotlib.pyplot as plt
>>> plt.gray()
>>> plt.imshow(lena)
>>> plt.show()

生成灰度图片。

plt.gray()将默认色彩映射设置为灰色,并将其应用于当前图像(如果有)。


您的图像关闭可能是因为在程序运行结束后,内存中不再存在图像对象。尝试在程序结束后保持程序运行(更简单的方法是在结尾处包含raw_input('enter any key to close')行)


您的上一个问题与pyplot和PIL如何显示图像有关。 Pyplot使用matplotlib,但PIL im.show()只是调用默认的系统图像查看器来为它在内存中的图像提供扩展。此扩展程序可以通过将im.format设置更改为所需图像编辑器或查看器所关联的格式(p.e。“PNG”)。