32.5 Преобразование цветов
Octave поддерживает преобразование из цветовой системы RGB в цветовую систему HSV и наоборот. Также можно преобразовать цветное изображение RGB в изображение в оттенках серого.
-
:
hsv_map =rgb2hsv(rgb_map) -
:
hsv_img =rgb2hsv(rgb_img) -
Преобразует карту цветов или изображение из цветового пространства RGB в HSV.
Цвет в пространстве RGB состоит из интенсивностей красного, зелёного и синего.
Цвет в пространстве HSV представлен уровнями оттенка, насыщенности и значения (яркости) в цилиндрической системе координат. Оттенок — это азимут, описывающий доминирующий цвет. Насыщенность — это радиальное расстояние, которое определяет долю оттенка, примешанного к цвету. Значение — это высота, определяющая количество света в цвете.
Тип и размер выходных данных будут такими же, как у входных.
-
:
rgb_map =hsv2rgb(hsv_map) -
:
rgb_img =hsv2rgb(hsv_img) -
Преобразует карту цветов или изображение из цветового пространства HSV в RGB.
Цвет в пространстве HSV представлен уровнями оттенка, насыщенности и значения (яркости) в цилиндрической системе координат. Оттенок — это азимут, описывающий доминирующий цвет. Насыщенность — это радиальное расстояние, которое определяет долю оттенка, примешанного к цвету. Значение — это высота, определяющая количество света в цвете.
На вход можно подать как карту цветов, так и изображение RGB. Для входных данных с плавающей точкой значения должны находиться в диапазоне [0 1]. Для оттенка (азимута), поскольку это значение соответствует углу, используется
mod (h, 1).>> hsv2rgb ([0.5 1 1]) ⇒ ans = 0 1 1 >> hsv2rgb ([2.5 1 1]) ⇒ ans = 0 1 1 >> hsv2rgb ([3.5 1 1]) ⇒ ans = 0 1 1
Тип и размер выходных данных будут такими же, как у входных.
-
:
I =rgb2gray(rgb_img) -
:
gray_map =rgb2gray(rgb_map) -
Преобразует изображение или карту цветов из цветового пространства красный-зелёный-синий (RGB) в изображение с интенсивностью в оттенках серого.
Входные данные могут иметь тип uint8, int8, uint16, int16, single или double. Выходные данные имеют тот же тип, что и входные.
Примечание по реализации: интенсивность оттенков серого вычисляется следующим образом:
I = 0.298936*R + 0.587043*G + 0.114021*B
Это соответствует каналу яркости при преобразовании RGB в YIQ, описанному в https://en.wikipedia.org/wiki/YIQ.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Color-Conversion.html