У меня есть массив (n, m), который я визуализировал с помощью matplotlib.pyplot.imshow
. Я хотел бы сохранить эти данные в некотором типе растровых графических файлов (например, PNG), так что:Сохранение imshow-like изображения при сохранении разрешения
- Цвета являются те, которые отображаются с
imshow
- Каждый элемент массива подстилающей точно один пиксель в сохраненном изображении - это означает, что если базовый массив является (n, m) элементами, то изображение NxM пикселей. (Меня не интересует
interpolation='nearest'
вimshow
.) - В сохраненном изображении нет ничего, кроме пикселей, соответствующих данным в массиве. (Например, нет белого пространства вокруг краев, осей и т. Д.)
Как это сделать?
Я видел код, способный сделать это, используя interpolation='nearest'
и заставляя matplotlib (неохотно) отключать оси, пробелы и т. Д. Однако должен быть какой-то способ сделать это более непосредственно - возможно, с PIL? В конце концов, у меня есть основные данные. Если я могу получить значение RGB для каждого элемента базового массива, тогда я могу сохранить его с помощью PIL. Есть ли способ извлечь данные RGB из imshow
? Я могу написать свой собственный код для сопоставления значений массива с значениями RGB, но я не хочу изобретать колесо, поскольку эта функция уже существует в matplotlib.
Благодарим вас за разъяснение всех этапов. Я могу использовать 'LogNorm' вместо' Normalize', а 'imshow' может принимать функцию нормализации в качестве аргумента, тогда как' imsave', по-видимому, не может. Однако ваше объяснение позволит мне обойти это ограничение. – lnmaurer