【问题标题】:Python. Matplotlib inverted imagePython。 Matplotlib 倒置图像
【发布时间】:2013-01-29 18:23:38
【问题描述】:

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

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 轴时,图像并没有变小,只是剪掉了一块。

提前谢谢你。如果能得到一些帮助,我将不胜感激。

【问题讨论】:

  • 当我使用您的代码时,一切正常。您使用的是什么版本的 python/matplotlib。第二个“倒置”是否与您问题中的第一个具有相同的含义?
  • 我知道代码效果很好但不正确。在代码图像的第一部分看起来正确,但是 Y 轴从 100 开始到 0。当我写一个参数(origin = 'lower' 或 ax = plt.gca() ax.invert_yaxis() )时,Y 轴从 0 变为100,但图像将被篡改。

标签: python image matplotlib


【解决方案1】:

您遇到了图像编码方式的问题。由于历史原因,图像的原点是左上角(就像二维数组上的索引......想象只是打印出一个数组,数组的第一行是图像的第一行,依此类推。)

使用origin=lower 可以有效地翻转您的图像(如果您要在图像顶部绘制东西,这很有用)。如果您想将图像翻转为“正面朝上”并且具有底部的原点,则需要在调用 imshow

之前翻转图像
 import numpy as np
 im = plt.imshow(np.flipud(plt.imread('tas.png')), origin='lower')
 plt.show()

【讨论】:

  • 为此 +1。或者,OP 可以反转刻度标签,但这远非理想的解决方案。
猜你喜欢
  • 2023-03-15
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 2017-05-17
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多