Питон. Библиотек matplotlib перевернутое изображение

Я понятия не имею, что здесь не так.

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 ответов


вы сталкиваетесь с артефактом того, как кодируются изображения. По историческим причинам источником изображения является верхний левый (как и индексация на 2D-массиве ... представьте, что вы просто распечатываете массив, первая строка вашего массива - это первая строка вашего изображения и так далее.)

используя origin=lower эффективно переворачивает изображение (что полезно, если вы собираетесь рисовать материал поверх изображения). Если вы хотите перевернуть изображение, чтобы быть 'правой стороной вверх' и есть происхождение дна, вам нужно перевернуть изображение перед вызовом imshow

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