matplotlib.colors.LightSource
- classmatplotlib.colors.LightSource(azdeg=315, altdeg=45, hsv_min_val=0, hsv_max_val=1, hsv_min_sat=1, hsv_max_sat=0)[source]
-
Основы:
objectСоздаёт источник света, исходящий из указанного азимута и зенита. Углы задаются в градусах, причём азимут измеряется по часовой стрелке от севера, а зенит — вверх от нулевой плоскости поверхности.
shadeиспользуется для получения «затенённых» значений RGB для массива данных.shade_rgbможет использоваться для объединения изображения RGB с картой высот.hillshadeсоздаёт карту освещённости поверхности.Укажите азимут (измеряемый по часовой стрелке от юга) и высоту (измеряемую вверх от плоскости поверхности) источника света в градусах.
- Параметры:
-
- azdegfloat, по умолчанию: 315 градусов (из северо-запада)
-
Азимут (0-360, градусы по часовой стрелке от севера) источника света.
- altdegfloat, по умолчанию: 45 градусов
-
Высота (0-90, градусы вверх от горизонтали) источника света.
- hsv_min_valчисло, по умолчанию: 0
-
Минимальное значение («v» в «hsv»), до которого карта интенсивности может сдвинуть выходное изображение.
- hsv_max_valчисло, по умолчанию: 1
-
Максимальное значение («v» в «hsv»), до которого карта интенсивности может сдвинуть выходное изображение.
- hsv_min_satчисло, по умолчанию: 1
-
Минимальное значение насыщенности, до которого карта интенсивности может сдвинуть выходное изображение.
- hsv_max_satчисло, по умолчанию: 0
-
Максимальное значение насыщенности, до которого карта интенсивности может сдвинуть выходное изображение.
Примечания
Для обратной совместимости параметры hsv_min_val, hsv_max_val, hsv_min_sat и hsv_max_sat могут быть заданы при инициализации. Однако эти параметры будут использоваться только в том случае, если в
shadeилиshade_rgbбудет передан «blend_mode='hsv'». Более подробную информацию см. в документации дляblend_hsv.- blend_hsv(rgb, intensity, hsv_max_sat=None, hsv_max_val=None, hsv_min_val=None, hsv_min_sat=None)[source]
-
Принимает массив входных данных, преобразует его в значения HSV в заданной цветовой карте, а затем корректирует эти цветовые значения для создания впечатления о карте рельефа с затенением, используя заданный источник света. Возвращаются значения RGBA, которые затем могут быть использованы для построения затенённого изображения с помощью imshow.
Цвет результирующего изображения будет затемнён, сдвигая значения (s, v) (в цветовом пространстве HSV) к (hsv_min_sat, hsv_min_val) в затенённых областях, или осветлён, сдвигая (s, v) к (hsv_max_sat, hsv_max_val) в освещённых областях. По умолчанию используются крайние значения, поэтому полностью затенённые точки будут почти чёрными (s = 1, v = 0), а полностью освещённые точки — почти белыми (s = 0, v = 1).
- Параметры:
-
-
rgb
ndarray -
Массив RGB (M, N, 3) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив (M, N, 1) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (изображение в градациях серого).
- hsv_max_satчисло, необязательно
-
Максимальное значение насыщенности, до которого карта интенсивности может сдвинуть выходное изображение. Если не указано, используется значение, заданное при инициализации.
- hsv_min_satчисло, необязательно
-
Минимальное значение насыщенности, до которого карта интенсивности может сдвинуть выходное изображение. Если не указано, используется значение, заданное при инициализации.
- hsv_max_valчисло, необязательно
-
Максимальное значение («v» в «hsv»), до которого карта интенсивности может сдвинуть выходное изображение. Если не указано, используется значение, заданное при инициализации.
- hsv_min_valчисло, необязательно
-
Минимальное значение («v» в «hsv»), до которого карта интенсивности может сдвинуть выходное изображение. Если не указано, используется значение, заданное при инициализации.
-
rgb
- Возвращает:
-
ndarray-
Массив RGB (M, N, 3), представляющий объединённые изображения.
- blend_overlay(rgb, intensity)[source]
-
Объединение изображения RGB с картой интенсивности с помощью смешивания «перекрытия».
- Параметры:
-
-
rgb
ndarray -
Массив RGB (M, N, 3) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив (M, N, 1) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (изображение в градациях серого).
-
rgb
- Возвращает:
-
- ndarray
-
Массив RGB (M, N, 3), представляющий объединённые изображения.
- blend_soft_light(rgb, intensity)[source]
-
Объединение изображения RGB с картой интенсивности с помощью смешивания «мягкий свет», используя формулу «pegtop».
- Параметры:
-
-
rgb
ndarray -
Массив RGB (M, N, 3) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив (M, N, 1) с плавающей запятой, значения которого находятся в диапазоне от 0 до 1 (изображение в градациях серого).
-
rgb
- Возвращает:
-
ndarray-
Массив RGB (M, N, 3), представляющий объединённые изображения.
- propertydirection
-
Вектор направления, указывающий на источник света.
- hillshade(elevation, vert_exag=1, dx=1, dy=1, fraction=1.0)[source]
-
Вычисление интенсивности освещения поверхности с использованием заданных азимута и зенита источника света.
Вычисляются векторы нормали к поверхности, которые затем передаются в
shade_normals- Параметры:
-
- elevation2D массив-подобный объект
-
Значения высот, используемые для генерации карты освещения
- vert_exagчисло, необязательно
-
Величина увеличения значений высоты при расчете освещения. Это может быть использовано для компенсации различий в единицах между системой координат x-y и системой координат высоты (например, десятичные градусы против метров) или для преувеличения или уменьшения топографических эффектов.
- dxчисло, необязательно
-
Шаг по оси x (столбцы) сетки входных данных elevation.
- dyчисло, необязательно
-
Шаг по оси y (строки) сетки входных данных elevation.
- fractionчисло, необязательно
-
Увеличивает или уменьшает контрастность карты освещения. Значения, большие единицы, сместят промежуточные значения к полному освещению или тени (и обрезят любые значения, которые выйдут за пределы 0 или 1). Обратите внимание, что это не визуально или математически то же самое, что и вертикальное преувеличение.
- Возвращаемое значение:
-
ndarray-
2D массив значений освещения в диапазоне 0-1, где 0 соответствует полной тени, а 1 — полному освещению.
- shade(data, cmap, norm=None, blend_mode='overlay', vmin=None, vmax=None, vert_exag=1, dx=1, dy=1, fraction=1, **kwargs)[source]
-
Объединение значений данных, отображенных цветовой шкалой, с картой интенсивности освещения (также известной как "карта рельефа") этих значений.
- Параметры:
-
- data2D массив-подобный объект
-
Значения высот, используемые для генерации карты рельефа.
-
cmap
Colormap -
Цветовая карта, используемая для окрашивания массива data. Обратите внимание, что это должен быть экземпляр
Colormap. Например, вместо передачиcmap='gist_earth', используйтеcmap=plt.get_cmap('gist_earth'). -
norm
Normalizeэкземпляр, необязательно -
Нормализация, используемая для масштабирования значений перед отображением цветовой шкалой. Если None, значения масштабируются линейно между минимальным и максимальным.
- blend_mode{'hsv', 'overlay', 'soft'} или вызываемая функция, необязательно
-
Тип смешивания, используемый для объединения значений данных, отображенных цветовой шкалой, с интенсивностью освещения. По умолчанию "overlay". Обратите внимание, что для большинства топографических поверхностей "overlay" или "soft" кажутся более реалистичными с визуальной точки зрения. Если передается пользовательская функция, ожидается, что она будет объединять массив RGB (M, N, 3) с плавающей точкой (диапазон от 0 до 1) с массивом карты рельефа (M, N, 1) (также от 0 до 1). (Подпись сигнатуры вызова
func(rgb, illum, **kwargs)) Дополнительные аргументы kwargs, переданные в эту функцию, будут переданы функции blend_mode. - vminчисло с плавающей точкой или None, необязательно
-
Минимальное значение, используемое для отображения цветовой шкалой data. Если None, используется минимальное значение в data. Если задан norm, этот аргумент игнорируется.
- vmaxчисло с плавающей точкой или None, необязательно
-
Максимальное значение, используемое для отображения цветовой шкалой data. Если None, используется максимальное значение в data. Если задан norm, этот аргумент игнорируется.
- vert_exagчисло, необязательно
-
Величина увеличения значений высоты при расчете освещения. Это может быть использовано для компенсации различий в единицах между системой координат x-y и системой координат высоты (например, десятичные градусы против метров) или для преувеличения или уменьшения топографических эффектов.
- dxчисло, необязательно
-
Шаг по оси x (столбцы) сетки входных данных elevation.
- dyчисло, необязательно
-
Шаг по оси y (строки) сетки входных данных elevation.
- fractionчисло, необязательно
-
Увеличивает или уменьшает контрастность карты рельефа. Значения, большие единицы, сместят промежуточные значения к полному освещению или тени (и обрезят любые значения, которые выйдут за пределы 0 или 1). Обратите внимание, что это не визуально или математически то же самое, что и вертикальное преувеличение.
- **kwargs
-
Дополнительные kwargs передаются функции blend_mode.
- Возвращаемое значение:
-
ndarray-
Массив (M, N, 4) с плавающей точкой в диапазоне 0-1.
- shade_normals(normals, fraction=1.0)[source]
-
Вычисление интенсивности освещения для векторов нормали поверхности с использованием заданных азимута и зенита источника света.
Представьте себе искусственное солнце, расположенное в бесконечности под некоторым азимутом и зенитом, освещающее нашу поверхность. Части поверхности, наклоненные к солнцу, должны осветляться, а части, обращенные в противоположную сторону, должны затемняться.
- Параметры:
-
- fractionчисло, необязательно
-
Увеличивает или уменьшает контрастность карты рельефа. Значения, большие единицы, сместят промежуточные значения к полному освещению или тени (и обрезят любые значения, которые выйдут за пределы 0 или 1). Обратите внимание, что это не визуально или математически то же самое, что и вертикальное преувеличение.
- Возвращаемое значение:
-
ndarray-
2D массив значений освещения в диапазоне 0-1, где 0 соответствует полной тени, а 1 — полному освещению.
- shade_rgb(rgb, elevation, fraction=1.0, blend_mode='hsv', vert_exag=1, dx=1, dy=1, **kwargs)[source]
-
Используйте этот источник света, чтобы настроить цвета входного массива rgb, создавая впечатление карты рельефа с затенением с заданной elevation.
- Параметры:
-
- rgbмассив-подобный объект
-
Массив RGB (M, N, 3), предполагаемый в диапазоне от 0 до 1.
- elevationмассив-подобный объект
-
Массив (M, N) значений высоты, используемых для создания затенённой карты.
- fractionчисло
-
Увеличивает или уменьшает контраст рельефа. Значения больше единицы приведут к тому, что промежуточные значения будут приближены к полному освещению или тени (и обрезанию любых значений, которые выйдут за пределы 0 или 1). Обратите внимание, что это не визуально или математически эквивалентно вертикальному преувеличению.
- blend_mode{'hsv', 'overlay', 'soft'} или вызываемый объект, необязательно
-
Тип смешивания, используемый для объединения значений цветовой карты с интенсивностью освещения. Для обратной совместимости по умолчанию используется "hsv". Обратите внимание, что для большинства топографических поверхностей "overlay" или "soft" выглядят более реалистичными с визуальной точки зрения. Если предоставлена пользовательская функция, она должна объединять массив RGB (M, N, 3) с плавающей точкой (от 0 до 1) и массив рельефа (M, N, 1) (также от 0 до 1). (Подпись вызова функции
func(rgb, illum, **kwargs)) Дополнительные аргументы kwargs, переданные в эту функцию, будут переданы функции blend_mode. - vert_exagчисло, необязательно
-
Величина преувеличения значений высоты при вычислении освещения. Это может быть использовано для исправления различий в единицах между системой координат x-y и системой координат высоты (например, десятичные градусы против метров) или для преувеличения или снижения выраженности топографии.
- dxчисло, необязательно
-
Шаг по оси x (столбцы) входной сетки elevation.
- dyчисло, необязательно
-
Шаг по оси y (строки) входной сетки elevation.
- **kwargs
-
Дополнительные аргументы kwargs передаются в функцию blend_mode.
- Возвращает:
-
ndarray-
Массив (m, n, 3) с плавающей запятой, значения которого лежат в диапазоне от 0 до 1.
Примеры использования matplotlib.colors.LightSource
Затенённое и нормализованное по мощности отображение
Пользовательское затенение на графике поверхности 3D
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/_as_gen/matplotlib.colors.LightSource.html