эквивалент matplotlib для MATLABs truesize () - PullRequest
0 голосов
/ 15 апреля 2010

Я новичок в matplotlib и python и хотел бы отобразить изображение так, чтобы 1 пиксель изображения фактически был представлен 1 пикселем на рисунке. В MATLAB это достигается с помощью команды truesize(). Как я могу сделать это в Python?

Я пытался поиграться с аргументами imshow(), а также set_dpi() и set_figwidth()/set_figheight(), но безуспешно.

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Если вы хотите создавать изображения вплоть до уровня пикселей, почему бы не использовать PIL в первую очередь? Таким образом, вам не нужно программно вычислять истинную область рисования, вычитая поля, метки и ширину оси из растяжения рисунка.

0 голосов
/ 16 апреля 2010

Этот хак делает то, что я хотел, хотя он все еще не совершенен:

h = mplt.imshow(img, interpolation='nearest')

dpi = h.figure.get_dpi()
h.figure.set_figwidth(img.shape[0] / dpi)
h.figure.set_figheight(img.shape[1] / dpi)
h.figure.canvas.resize(img.shape[1] + 1, img.shape[0] + 1)

h.axes.set_position([0, 0, 1, 1])
h.axes.set_xlim(-1, img.shape[1])
h.axes.set_ylim(img.shape[0], -1)

Это может быть обобщено для учета полей вокруг осей, удерживающих изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...