我该如何使用Python沿垂直轴翻转图像?

18

我正在尝试在Python中沿垂直轴翻转一张图片。

3个回答

37

PIL 实际上并不是必需的,对于这样简单的操作,您可以使用 fliplr 函数通过 NumPy 完成。

import matplotlib.pyplot as plt
import numpy as np

im = np.flipud(plt.imread('so.jpg'))
plt.subplot(2, 1, 1)
plt.imshow(im)
plt.subplot(2, 1, 2)
plt.imshow(np.fliplr(im))
plt.show()

在此输入图片描述

狼吞虎咽地撤销了猫们!


谢谢,但是我如何使用媒体库来完成这个任务? - Wobblester
抱歉,我指的是pygraphics库,网址为http://packages.python.org/PyGraphics/user/index.html。 - Wobblester
不知道,从未使用过那个库。上面的方法有什么不满意的地方吗? - wim
没问题,但我之前从来没有接触过PIL,所以我正在试图弄清楚是否可以使用PyGraphics实现。我打算编写一个算法,对每个像素进行移动。 - Wobblester
但这是 numpy 的技巧,不是 PIL。如果你想在 PIL 中实现它,请参考 @Lattyware 的回答。 - wim
鉴于PyGraphics的文档说明需要安装numpy和PIL,我认为两者都是有效的选择。然而,在这种情况下,我会认为PIL选项更清晰、更简单,因为PyGraphics将图像加载为PIL对象。 - Gareth Latty

4
您已经表示您正在使用PyGraphics - 它说明load_image 返回一个PIL图像对象
PyGraphics似乎没有提供翻转的功能,所以我们可以使用PIL完成,特别是transpose
from PyGraphics import picture
flipped = picture.load_image("blah.jpg").transpose(Image.FLIP_LEFT_RIGHT)  

2

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