Python. Matplotlib 反转图像

10 投票
1 回答
10555 浏览
提问于 2025-04-17 14:06

我不知道这里出了什么问题。

import matplotlib.pyplot as plt

im = plt.imshow(plt.imread('tas.png'))
plt.show()

而且Y轴出现了反转。
所以我写了一个参数 origin='lower'

im = plt.imshow(plt.imread('tas.png'), origin='lower')
plt.show()

结果是这样的。
Y轴正常了,但图像现在反转了。

还有,当我尝试重新调整X轴和Y轴的比例时,图像并没有变小,只是裁剪了一部分。

提前谢谢你们。我会非常感激能得到一些帮助。

1 个回答

21

你遇到的问题是因为图片的编码方式。历史上,图片的起始点是左上角(就像二维数组的索引一样……想象一下打印一个数组,数组的第一行就是你图片的第一行,以此类推)。

使用 origin=lower 实际上是把你的图片翻转了(这在你想在图片上绘制东西时很有用)。如果你想把图片翻转到“正面朝上”,并且希望起始点在底部,你需要在调用 imshow 之前先翻转你的图片。

 import numpy as np
 im = plt.imshow(np.flipud(plt.imread('tas.png')), origin='lower')
 plt.show()

撰写回答