如何在 Python 中打开图片

How to open up an Image in Python

我是 Whosebug 的新手,仍在学习 python 但我正在尝试开始我的一个项目。 我计划使用 python 创建图像过滤器。我想学习的第一步是如何在 python 中打开图像。这是我目前所拥有的:

from PIL import Image
im = Image.open('Jordan.jpg')
im.show()

我走在正确的轨道上吗?我正在使用 Python 2.7

最自然的python图像对应的对象是多维数组;这是最自然的表示,也是处理图像的最佳数据结构,正如您打算通过创建滤镜来实现的那样。

Python 有一个数组模块,但是,为了创建和操作多维数组(例如,创建过滤器),我强烈建议安装两个 python 库 NumPy and SciPy从此处提供的链接或 pip 安装它们:

pip install numpy
pip install scipy


>>> from scipy import misc as MSC
>>> imfile = "~/path/to/an/image.jpg"

使用imread函数在scipy的杂项模块中,实际上只是在后台调用PIL;此函数将读取 jpeg 和 png 图像

>>> img = MSC.imread(imfile)

验证它是一个 NumPy 数组

>>> isinstance(img, NP.ndarray)
True 

彩色图像具有三个轴:X(宽度)Y(高度)和 Z(构成 RGB 元组的三个元素;

前两个轴是图像的像素宽度和高度, 最后一个维度应该是“3”(或者对于具有 alpha 通道的 'png' 图像是“4”)

>>> img.shape
(200, 200, 3)

从图像中心粗略选择一个像素(单个 RGB 三元组)

>>> img[100,100,:]
array([83, 26, 17], dtype=uint8)

如果你调用Matplotlib的imshow方法并传入这个NumPy数组,它会渲染图像