Я рисую версию этого изображения в оттенках серого:
ИСТОЧНИК: http://matplotlib.org/examples/pylab_examples/griddata_demo.html
Я использовал следующий код:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from PIL import Image
file_name = 'griddata_demo.png'
def func_grey(fname):
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap = cm.Greys_r)
plt.show()
func_grey(file_name)
Отображать изображение в оттенках серого с помощью matplotlib
Установка, над которой я работаю, включает Python 2.7 и Pandas, и я установил Pillow с простой установкой.
Исходная информация об изображении и требованиях:
- Изображение взято из данных, найденных здесь. В идеале версия этого изображения в оттенках серого должна быть сгенерирована непосредственно из этих необработанных данных, т.е. не сохраняйте его как цветное изображение, а затем пытайтесь преобразовать в оттенки серого, а просто создайте версию графика в оттенках серого.
- Я не знаю цвета, соответствующие z-значениям — эти цвета можно задавать произвольно.
- Карту цветов изображения также можно выбрать произвольно — предпочтений нет. Это версия в оттенках серого, которая вызывает беспокойство.
Мой вопрос связан с цветовой схемой, показанной на панели цветов. Мне нужно отобразить цветовую схему, в которой цветная полоса имеет цвета от светло-серого (самая низкая интенсивность) до темно-серого (самая высокая интенсивность).
После запуска приведенного выше кода создается изображение в оттенках серого. На цветовой полосе изображения в оттенках серого уровень интенсивности -0,36 соответствует темно-серому. В 0.00 он светло-серый. Но тогда 0,48 тоже темно-серый.
Вопрос: Можно ли изменить цветовую карту так, чтобы -0,36 было светло-серым, а 0,48 - темно-серым? Я имею в виду, можно ли отображать цветную полосу от светлого к темному?
0
ярче, чем красный или синий в крайних точках... вы можете просто посмотрите, так что не вините свой конвертер). Поэтому вместо преобразования с использованием яркости вам нужно инвертировать исходную палитру. Или, если вы можете создать цветное изображение с нуля и вам не нужно создавать существующее изображение, выберите другую карту цветов, напримерhot
или кубическую спираль и т. д. - person tom10   schedule 07.10.2014hot
,cubehelix
и т. д.). Тогдаconvert(L)
будет работать, и вся проблема очень проста. Верно? Я напишу короткую демонстрацию позже (если кто-то еще не сделает этого раньше). - person tom10   schedule 08.10.2014