Spec-Zone.ru › Octave 9

Далее: Построение графиков поверх изображений, Предыдущий: Отображение изображений, Вверх: Обработка изображений [Содержание][Индекс]

32.3 Представление изображений ¶

В целом, Octave поддерживает четыре различных типа изображений: градация серого, RGB, бинарные и индексированные изображения. Изображение в градациях серого представлено матрицей M×N, в которой каждый элемент соответствует интенсивности пикселя. Изображение RGB представлено массивом M×N×3, где каждый 3-вектор соответствует интенсивности красного, зеленого и синего цветов каждого пикселя.

Фактическое значение интенсивности пикселя в изображении в градациях серого или RGB зависит от класса матрицы. Если матрица класса double интенсивность пикселей находится в диапазоне от 0 до 1, если она класса uint8 интенсивность находится в диапазоне от 0 до 255, и если она класса uint16 интенсивность находится в диапазоне от 0 до 65535.

Бинарное изображение представляет собой матрицу M×N класса logical. Пиксель в бинарном изображении черный, если он false, и белый, если он true.

Индексированное изображение состоит из матрицы M×N целых чисел и цветовой карты C×3. Каждое целое число соответствует индексу в цветовой карте, а каждая строка в цветовой карте соответствует цвету RGB. Цветовая карта должна быть класса double со значениями от 0 до 1.

Для преобразования между форматами изображений доступны следующие вспомогательные функции.

: dimg = im2double (img) ¶
: dimg = im2double (img, "indexed") ¶

Преобразовать изображение в double precision.

Преобразование img в double precision зависит от типа входного изображения. Поддерживаются следующие входные классы:

‘uint8, uint16, and int16’

Диапазон значений из класса масштабируется до интервала [0 1].

‘logical’

Значения true и false присваиваются значения 1 и 0 соответственно.

‘single’

Значения приводятся к типу double.

‘double’

Возвращает то же изображение.

Если img является индексированным изображением, то второй аргумент должен быть строкой "indexed". В этом случае img должен быть либо класса с плавающей точкой, либо класса без знака, и он будет просто приведен к типу double. Если это целочисленный класс, применяется смещение +1.

См. также: double.

: img = gray2ind (I) ¶
: img = gray2ind (I, n) ¶
: img = gray2ind (BW) ¶
: img = gray2ind (BW, n) ¶
: [img, map] = gray2ind (…) ¶

Преобразовать изображение в градациях серого или бинарное изображение интенсивности в индексированное изображение.

Индексированное изображение будет состоять из n различных значений интенсивности. Если n не указано, по умолчанию принимается значение 64 для изображений в градациях серого или 2 для бинарных черно-белых изображений.

Выходное значение img имеет класс uint8, если n меньше или равно 256; в противном случае возвращаемый класс - uint16.

См. также: ind2gray, rgb2ind.

: I = ind2gray (x, map) ¶

Преобразовать цветное индексированное изображение в изображение в градациях серого.

Изображение x должно быть индексированным изображением, которое будет преобразовано с использованием цветовой карты map. Если map не содержит достаточно цветов для изображения, пиксели в x за пределами диапазона сопоставляются с последним цветом в карте перед преобразованием в градации серого.

Выходное значение I имеет тот же класс, что и входное значение x, и может быть одним из uint8, uint16, single, или double.

Примечание по реализации: существует несколько способов преобразования цветов в интенсивность градаций серого. Эта функция использует значение яркости, полученное из rgb2gray, которое составляет I = 0.299*R + 0.587*G + 0.114*B. Другие возможности включают компонент значения из rgb2hsv или использование одного цветового канала из ind2rgb.

См. также: gray2ind, ind2rgb.

: [x, map] = rgb2ind (rgb) ¶
: [x, map] = rgb2ind (R, G, B) ¶

Преобразовать изображение в цветовом пространстве red-green-blue (RGB) в индексированное изображение.

Входное изображение rgb может быть указано как одна матрица размером MxNx3 или как три отдельные переменные, R, G и B, его три цветовых канала: красный, зеленый и синий.

Он выводит индексированное изображение x и цветовую карту map для точной интерпретации изображения точно так же, как и входное изображение. Нет джиттеринга или другой формы квантования цвета. Выходной класс индексированного изображения x может быть uint8, uint16 или double, в зависимости от того, что необходимо для указания количества уникальных цветов в изображении (которое будет равно количеству строк в map) в порядке.

Многомерные индексированные изображения (размером MxNx3xK) также поддерживаются, как через один входной параметр (rgb), так и через три цветовых канала в виде отдельных переменных.

См. также: ind2rgb, rgb2hsv, rgb2gray.

: rgb = ind2rgb (x, map) ¶
: [R, G, B] = ind2rgb (x, map) ¶

Преобразовать индексированное изображение в компоненты красного, зеленого и синего цветов.

Изображение x должно быть индексированным изображением, которое будет преобразовано с использованием цветовой карты map. Если map не содержит достаточно цветов для изображения, пиксели в x за пределами диапазона сопоставляются с последним цветом в карте.

Выходным значением может быть одно RGB-изображение (матрица MxNx3, где M и N - исходные размеры изображения x, по одному для каждого из красного, зеленого и синего каналов). В качестве альтернативы, могут быть возвращены отдельные матрицы красного, зеленого и синего цветов размером MxN.

Многомерные индексированные изображения (размером MxNx1xK) также поддерживаются.

См. также: rgb2ind, ind2gray, hsv2rgb.

Octave также предоставляет инструменты для создания и работы со структурами кадров фильмов. Эти структуры инкапсулируют данные изображения (поле "cdata") вместе с соответствующей цветовой картой (поле "colormap").

: frame = getframe () ¶
: frame = getframe (hax) ¶
: frame = getframe (hfig) ¶
: frame = getframe (…, rect) ¶

Захватить рисунок или область как кадр для фильма.

Без аргументов, захватывает текущую область, исключая метки осей, заголовок и метки осей x/y/z. Возвращаемая структура frame имеет поле cdata, которое содержит фактические данные изображения в виде NxMx3 (RGB) uint8 матрицы в пикселях физического экрана, и поле colormap, которое предоставляется для совместимости с MATLAB, но всегда пусто.

Если первый аргумент hax является дескриптором области, то захватывается эта область, а не текущая область, возвращаемая gca.

Если первый аргумент hfig является дескриптором фигуры, то захватывается весь соответствующий холст фигуры.

Наконец, если предоставлен второй аргумент rect, он должен быть вектором из четырёх элементов ([левый нижний ширина высота]), определяющим область внутри фигуры, подлежащую захвату. Независимо от свойства фигуры "units", rect должен быть определён в пикселях.

См. также: im2frame, frame2im, movie.

: movie (mov) ¶
: movie (mov, n) ¶
: movie (mov, n, fps) ¶
: movie (h, …) ¶

Проигрывание фильма, определённого массивом структур кадров.

Фильм mov должен быть структурированным массивом кадров с полями "cdata" и "colormap", как возвращается функцией getframe. По умолчанию все изображения отображаются один раз со скоростью 12 кадров в секунду в текущей области.

Необязательный аргумент n является скаляром или вектором целых чисел, который управляет количеством раз, в которые воспроизводится фильм, и какими конкретными кадрами будут показаны:

Первый элемент:
n(1) > 0

Фильм воспроизводится n(1) раз.

n(1) < 0

Фильм воспроизводится abs (n(1) раз, поочерёдно вперёд и назад.

Другие элементы (если таковые имеются):

Индексы кадров в mov, которые будут отображаться.

Если первый аргумент — дескриптор фигуры или области h, фильм воспроизводится в этой фигуре или области вместо текущей области.

См. также: getframe, im2frame, frame2im.

: [x, map] = frame2im (frame) ¶

Преобразование кадра фильма в индексированное изображение.

Кадр фильма — это просто структура с полями "cdata" и "colormap".

Поддержка N-мерных изображений или фильмов предоставляется, когда frame является структурированным массивом. В таких случаях x будет MxNx1xK или MxNx3xK для индексированных и RGB фильмов соответственно, с каждым кадром, соединённым вдоль четвёртого измерения.

См. также: im2frame, getframe.

: frame = im2frame (rgb) ¶
: frame = im2frame (x, map) ¶

Преобразование изображения в кадр фильма.

Кадр фильма — это просто структура с полями "cdata" и "colormap".

Поддержка N-мерных изображений обеспечивается путем конкатенации каждой проекции изображения, матриц размеров MxN и MxNx3 для RGB изображений, вдоль четвёртого измерения. В таких случаях возвращаемое значение является структурированным массивом.

См. также: frame2im.

Функция colormap используется для изменения цветовой карты текущей области или фигуры.

: cmap = colormap () ¶
: cmap = colormap (map) ¶
: cmap = colormap ("default") ¶
: cmap = colormap (map_name) ¶
: cmap = colormap (hax, …) ¶
: colormap map_name ¶

Запрос или установка текущей цветовой карты.

Без входных аргументов, colormap возвращает текущую цветовую карту.

colormap (map) устанавливает текущую цветовую карту на map. Цветовая карта должна быть матрицей размером n строки на 3 столбца. Столбцы содержат интенсивности красного, зеленого и синего цветов соответственно. Все значения должны быть в диапазоне от 0 до 1 включительно. Новая цветовая карта возвращается.

colormap ("default") восстанавливает цветовую карту по умолчанию (viridis карта с 64 значениями). Возвращается цветовая карта по умолчанию.

Карту также можно указать строкой, map_name, которая является именем функции, возвращающей цветовую карту.

Если первый аргумент hax является дескриптором осей, то цветовая карта для этих осей запрашивается или устанавливается.

Для удобства, эту функцию также можно использовать в командной форме, colormap map_name.

Список встроенных цветовых карт:

Карта Описание
viridis по умолчанию
turbo цветовая карта, проходящая через синий, голубой, зелёный, жёлтый, красный цвета; современная замена для jet.
jet цветовая карта, проходящая через синий, голубой, зелёный, жёлтый, красный цвета.
cubehelix цветовая карта, проходящая через чёрный, синий, зелёный, красный, белый цвета с возрастающей интенсивностью.
hsv циклическая цветовая карта, проходящая через пространство цветового тона, насыщенности, яркости.
rainbow цветовая карта, проходящая через красный, жёлтый, синий, зелёный, фиолетовый цвета.
————- ———————————————————————————————
hot цветовая карта, проходящая через чёрный, красный, оранжевый, жёлтый, белый цвета.
cool цветовая карта, проходящая через голубой, пурпурный, малиновый цвета.
spring цветовая карта, проходящая от пурпурного до жёлтого.
summer цветовая карта, проходящая от зелёного до жёлтого.
autumn цветовая карта, проходящая от красного, оранжевого до жёлтого.
winter цветовая карта, проходящая от синего до зелёного.
————- ———————————————————————————————
gray цветовая карта, проходящая от чёрного до белого в оттенках серого.
bone цветовая карта, проходящая от чёрного через серо-голубой до белого.
copper цветовая карта, проходящая от чёрного до светло-медного.
pink цветовая карта, проходящая от чёрного через серо-розовый до белого.
ocean цветовая карта, проходящая от чёрного через тёмно-синий до белого.
————- ———————————————————————————————
colorcube равномерно распределённые цвета в RGB цветовом пространстве.
flag циклическая 4-цветная карта: красный, белый, синий, чёрный.
lines циклическая цветовая карта с цветами из свойства осей "ColorOrder"
prism циклическая 6-цветная карта: красный, оранжевый, жёлтый, зелёный, синий, фиолетовый.
————- ———————————————————————————————
white цветовая карта, состоящая только из белого цвета (без цветов).

См. также: viridis, turbo, jet, cubehelix, hsv, rainbow, hot, cool, spring, summer, autumn, winter, gray, bone, copper, pink, ocean, colorcube, flag, lines, prism, white.

: tf = iscolormap (cmap) ¶

Возвращает true, если cmap является цветовой картой.

Цветовая карта - это вещественная матрица, класса single или double, с 3 столбцами. Каждая строка представляет собой отдельный цвет. 3 столбца содержат интенсивности красного, зелёного и синего цветов соответственно.

Все значения в цветовой карте должны быть в диапазоне [0 1], но это не проверяется. Каждая функция должна сама определять, что делать со значениями за пределами этого диапазона.

См. также: colormap, rgbplot.

Следующие функции возвращают предопределённые цветовые карты, те же, которые можно запросить по имени, используя функцию colormap.

: rgbplot (cmap) ¶
: rgbplot (cmap, style) ¶
: h = rgbplot (…) ¶

Строит компоненты цветовой карты.

Доступны два разных стиля style для отображения cmap:

profile (по умолчанию)

Строит график профиля RGB цветовой карты для каждого канала (красный, зелёный и синий) с соответствующим цветом линий. Каждая линия представляет интенсивность RGB компонента по всей цветовой карте.

composite

Отображает цветовую карту по оси X, так что видны фактические цвета индекса, а не отдельные компоненты цвета.

Дополнительное возвращаемое значение h - это дескриптор графика.

Запустите demo rgbplot для просмотра примера rgbplot и каждого варианта стиля.

См. также: colormap.

: map = autumn () ¶
: map = autumn (n) ¶

Создаёт цветовую карту. Эта цветовая карта изменяется от красного через оранжевый до жёлтого.

Аргумент n должен быть скаляром. Если он не указан, используется длина текущей цветовой карты или 64.

См. также: colormap.

: map = bone () ¶
: map = bone (n) ¶

Создаёт цветовую карту. Эта цветовая карта изменяется от чёрного к белому с серыми и синими оттенками.

Аргумент n должен быть скаляром. Если он не указан, используется длина текущей цветовой карты или 64.

См. также: colormap.

: map = colorcube () ¶
: map = colorcube (n) ¶

Создать цветовую палитру. Эта палитра состоит из максимально возможного количества равномерно распределённых цветов (не оттенков серого) в цветовом пространстве RGB.

Если количество идеально равномерно распределённых цветов n не является целым числом, оставшиеся значения в палитре являются градиентами чистого красного, зеленого, синего и серого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = cool () ¶
: map = cool (n) ¶

Создать цветовую палитру. Палитра изменяется от циана до пурпурного.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = copper () ¶
: map = copper (n) ¶

Создать цветовую палитру. Эта палитра изменяется от чёрного до светло-медно-оранжевого оттенка.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = cubehelix () ¶
: map = cubehelix (n) ¶
: map = cubehelix (n, start, rots, hue, gamma) ¶

Создать цветовую палитру куб-спираль.

Эта палитра изменяется от чёрного к белому, проходя через синие, зелёные и красные тона, сохраняя монотонно возрастающее восприятие интенсивности. Это достигается путём прохождения по цветовому кубу от чёрного к белому по спирали, отсюда и название куб-спираль, учитывая при этом воспринимаемую яркость каждого канала в соответствии со спецификациями NTSC 1953 года.

rgbplot (cubehelix (256))

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

Ссылка: Green, D. A., 2011, Схемы цветов для отображения астрономических изображений интенсивности, Бюллетень Астрономического общества Индии, 39, 289.

См. также: colormap.

: map = flag () ¶
: map = flag (n) ¶

Создать цветовую палитру. Эта палитра циклически проходит через красный, белый, синий и чёрный цвета при каждом изменении индекса.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = gray () ¶
: map = gray (n) ¶

Создать цветовую палитру серого. Эта палитра изменяется от чёрного до белого с различными оттенками серого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = hot () ¶
: map = hot (n) ¶

Создать цветовую палитру. Эта палитра изменяется от чёрного через тёмно-красный, красный, оранжевый, жёлтый до белого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = hsv () ¶
: map = hsv (n) ¶

Создать цветовую палитру. Эта палитра начинается с красного, изменяется через жёлтый, зелёный, циан, синий и пурпурный, прежде чем вернуться к красному.

Она полезна для отображения периодических функций. Палитра получается путём линейного изменения оттенка через все возможные значения при сохранении постоянной максимальной насыщенности и значения. Эквивалентный код: hsv2rgb ([(0:N-1)'/N, ones(N,2)]).

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = jet () ¶
: map = jet (n) ¶

Создать цветовую палитру. Эта палитра изменяется от тёмно-синего через синий, циан, зелёный, жёлтый, красный до тёмно-красного.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

Примечание по программированию: Палитра jet не является равномерной с точки зрения восприятия. Попробуйте палитру viridis , если это важно. Для прямой замены jet с лучшими характеристиками восприятия попробуйте палитру turbo.

См. также: colormap, turbo.

: map = lines () ¶
: map = lines (n) ¶

Создать цветовую палитру. Эта палитра состоит из списка цветов в текущем свойстве осей "ColorOrder". По умолчанию это синий, оранжевый, жёлтый, фиолетовый, зелёный, светло-синий и тёмно-красный.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = ocean () ¶
: map = ocean (n) ¶

Создать цветовую палитру. Эта палитра изменяется от чёрного к белому с оттенками синего.

Аргумент n должен быть скаляром. Если не указано, используется длина текущей цветовой палитры или 64.

См. также: colormap.

: map = pink () ¶
: map = pink (n) ¶

Создать цветовое отображение. Это отображение изменяется от черного к белому с оттенками серо-розового цвета.

Это цветовое отображение дает сепию при использовании на изображениях в оттенках серого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = prism () ¶
: map = prism (n) ¶

Создать цветовое отображение. Это цветовое отображение циклически проходит через красный, оранжевый, желтый, зеленый, синий и фиолетовый при каждом изменении индекса.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = rainbow () ¶
: map = rainbow (n) ¶

Создать цветовое отображение. Это отображение изменяется от красного через оранжевый, желтый, зеленый, синий до фиолетового.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = spring () ¶
: map = spring (n) ¶

Создать цветовое отображение. Это отображение изменяется от пурпурного до желтого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = summer () ¶
: map = summer (n) ¶

Создать цветовое отображение. Это отображение изменяется от зеленого до желтого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = turbo () ¶
: map = turbo (n) ¶

Создать цветовое отображение. Это отображение изменяется от темно-синего через зеленый до темно-красного; подобно устаревшему jet цветовому отображению, но с равномерным восприятием.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = viridis () ¶
: map = viridis (n) ¶

Создать цветовое отображение. Это отображение изменяется от темно-пурпурно-синего через синий, зеленый до желтого.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = white () ¶
: map = white (n) ¶

Создать цветовое отображение. Это отображение полностью белое.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: map = winter () ¶
: map = winter (n) ¶

Создать цветовое отображение. Это отображение изменяется от синего к зеленому.

Аргумент n должен быть скаляром. Если не указано, используется длина текущего цветового отображения или 64.

См. также: colormap.

: cmap = contrast (x) ¶
: cmap = contrast (x, n) ¶

Возвращает серое цветовое отображение, которое максимизирует контраст на изображении.

Возвращаемое цветовое отображение будет иметь n строк. Если n не определено, используется размер текущего цветового отображения.

См. также: colormap, brighten.

Следующие три функции изменяют существующее цветовое отображение, а не заменяют его.

: map_out = brighten (beta) ¶
: map_out = brighten (map, beta) ¶
: map_out = brighten (h, beta) ¶
: brighten (…) ¶

Усиление или затемнение цветового отображения.

Аргумент beta должен быть скаляром от -1 до 1, где отрицательное значение затемняет, а положительное — усиливает цветовое отображение.

Если аргумент map опущен, функция применяется к текущему цветовому отображению.

Первый аргумент также может быть допустимым графическим дескриптором h, в этом случае brighten применяется к цветовому отображению, связанному с этим дескриптором.

Если выход не указан, результат записывается в текущее цветовое отображение.

См. также: colormap, contrast.

: spinmap () ¶
: spinmap (t) ¶
: spinmap (t, inc) ¶
: spinmap ("inf") ¶

Циклически меняйте цветовую карту в течение t секунд с приращением цвета inc.

Оба параметра необязательны. По умолчанию время цикла составляет 5 секунд, а приращение — 2. Если опция "inf" указана, то цикл будет продолжаться до нажатия Control-C.

При вращении цвет 1 становится цветом 2, цвет 2 — цветом 3 и т. д. Допускается положительное или отрицательное приращение; большее значение inc приведет к более быстрому циклическому прохождению по цветовой карте.

См. также: colormap.

: whitebg () ¶
: whitebg (color) ¶
: whitebg ("none") ¶
: whitebg (hfig) ¶
: whitebg (hfig, color) ¶
: whitebg (hfig, "none") ¶

Инвертирует цвета в текущей цветовой схеме.

Корневые свойства также инвертируются, так что все последующие графики будут использовать новую цветовую схему.

Если присутствует необязательный аргумент color, то цвет фона устанавливается в color, а не инвертируется. color может быть строкой, представляющей один из восьми известных цветов, или RGB-тройкой. Специальный строковый аргумент "none" восстанавливает график до заводских цветовых настроек.

Если первый аргумент hfig — это дескриптор фигуры или список дескрипторов фигур, то операция выполняется над этими фигурами, а не над текущей фигурой, возвращаемой gcf. Корневые свойства не будут изменены, если 0 не входит в список фигур.

Примечание по программированию: whitebg выполняет операцию, изменяя свойства цвета потомков указанных фигур. Только объекты с одиночным цветом затронуты. Например, патч с одиночным "FaceColor" будет изменён, но патч с заливкой ("interp") не будет модифицирован. Для инверсии новый цвет просто инвертируется в RGB-пространстве: cnew = [1-R 1-G 1-B]. Когда цвет задан, ось и фигура устанавливаются в новый цвет, а цвет дочерних объектов затем настраивается так, чтобы он контрастировал (был виден) на новом фоне.

См. также: reset, get, set.

Для управления цветовыми картами можно использовать следующие функции.

: [Y, newmap] = cmunique (X, map) ¶
: [Y, newmap] = cmunique (RGB) ¶
: [Y, newmap] = cmunique (I) ¶

Преобразует входное изображение X в выходное индексированное изображение Y, которое использует минимально возможную цветовую карту newmap.

Когда вход — индексированное изображение (X с цветовой картой map), выход — цветовая карта newmap, из которой были удалены все повторяющиеся строки. Выходное изображение Y — это исходное входное изображение с индексами, скорректированными для соответствия новой, возможно меньшей, цветовой карте.

Когда вход — RGB-изображение (матрица MxNx3), выходная цветовая карта будет содержать одну запись для каждого уникального цвета в исходном изображении. В худшем случае новая карта может содержать столько строк, сколько пикселей в исходном изображении.

Когда вход — изображение в оттенках серого I, выходная цветовая карта будет содержать одну запись для каждого уникального значения яркости в исходном изображении. В худшем случае новая карта может содержать столько строк, сколько пикселей в исходном изображении.

Детали реализации:

newmap всегда является матрицей Mx3, даже если входное изображение представляет собой изображение в оттенках серого I (все три RGB-плана присваиваются одному значению).

Выходное изображение имеет тип uint8, если размер новой цветовой карты меньше или равен 256. В противном случае выходное изображение имеет тип double.

См. также: rgb2ind, gray2ind.

: [Y, newmap] = cmpermute (X, map) ¶
: [Y, newmap] = cmpermute (X, map, index) ¶

Изменяет порядок цветов в цветовой карте.

Если вызывается только с двумя аргументами, cmpermute случайным образом переупорядочивает цветовую карту map и возвращает новую цветовую карту newmap. Она также возвращает индексированное изображение Y, которое эквивалентно исходному входному изображению X при отображении с использованием newmap.

При вызове с необязательным третьим аргументом порядок цветов в новой цветовой карте определяется index.

Внимание: index не должен содержать повторяющихся элементов, иначе функция завершится ошибкой.

Далее: Отображение графиков поверх изображений, Предыдущее: Отображение изображений, Вверх: Обработка изображений [Содержание][Индекс]

© 1996–2023 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.2.0/Representing-Images.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API