我正在尝试使用 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()
和图像:
考虑到原始图像是灰度的,我不知道为什么它的颜色是这样的,但一次有一个问题。
当我运行完全相同的程序时(在 所有 spyder 最初提供的导入之后),相同的图像查看器打开,但立即关闭....
另一个教程。如果我在命令行上运行此代码,默认的 Windows 8 图像查看器(我不想要)会弹出并显示图像(正确,不像上面的那样着色):
from PIL import Image, ImageFilter
original = Image.open("lena.png")
blurred = original.filter(ImageFilter.BLUR)
original.show()
blurred.show()
互联网对我一点帮助都没有。所有教程都使用我不习惯的 IPython,并且每个教程都使用不同的方式打开和查看图像。由于我是新手,只是遵循教程,对自己在做什么并没有实际的想法,如果有人能帮助我,我将不胜感激,重点是以下几点:
- 为什么在 cmd 行图像查看器打开和关闭,而在 spyder 界面上却没有?
- 我怎样才能运行一个问题来简单地查看一个简单的图像,而不会那么头疼?
- 您如何处理图像(scipy、PIL、..),以及您如何运行/编写程序?
最佳答案
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
设置更改为与您所需的图像编辑器或查看器相关联的格式(例如“PNG”)。
关于python - 通过cmd窗口在Python中打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21747083/