Как построить и сохранить изображение с помощью Python, как в Matlab?

1

У меня есть код в Matlab, который считывает данные из txt файла и после некоторых манипуляций с этими данными генерирует массив 20x20, который используется для построения изображения следующим образом: Изображение 174551

Мне нужно было переписать этот код на Python по соображениям оптимизации и необходимости проекта. Пока фаза генерации матрицы не будет корректной, но я не могу сгенерировать одни и те же изображения, потому что они имеют разные масштабы и цвета следующим образом: Изображение 174551

Ниже приведен фрагмент кода в Matlab, который отображает изображение:

figure
image(H1,'CDataMapping','scaled')
colormap;
saveas(gcf,'d1.jpg');

И вот фрагмент кода в Python:

import matplotlib.pylab as plt
fig, ax = plt.subplots()
ax.imshow(H1)
plt.gcf().savefig('d1.jpg')
plt.show()
plt.close()

Мне просто нужно построить изображение с тем же разрешением (875 x 656) и изменить цвет, чтобы быть более похожим.

Прямо сейчас, я благодарю тех, кто помогает! : D

  • 2
    На рисунке MATLAB используется цветовая карта Parula, защищенная авторским правом The MathWorks. Насколько я понимаю, вы не можете воссоздать ту же карту цветов за пределами MATLAB без нарушения авторских прав.
Теги:
matplotlib
colormap

1 ответ

0
Лучший ответ

Разрешение управляется двумя параметрами figsize которые принимают кортеж, который представляет размер фигуры в дюймах и dpi контролирует точки на дюйм фигуры. Эти два вопроса войдут в ваш аргумент subplots:

ax, fig = plt.subplots(figsize=(x, y), dpi=z)

где x и y будут желаемой шириной и высотой фигуры, а z будет желаемым dpi.

Что касается цветов, вам нужно выбрать другую цветовую палитру. Сначала выберите цветовую палитру вы хотите (Matplotlib доступные цветовые карты можно найти здесь). Затем передать его в cmap аргумент imshow, как это:

ax.imshow(H1, cmap=c)

где c - строка, содержащая имя цветовой карты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню