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") -
Преобразовать изображение в формат с двойной точностью.
Преобразование img в формат с двойной точностью зависит от типа входного изображения. Поддерживаются следующие входные классы:
- ‘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.
-
:
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.
-
:
[x, map] =rgb2ind(rgb) -
:
[x, map] =rgb2ind(R, G, B) -
Преобразовать изображение из цветового пространства красный-зеленый-синий (RGB) в индексированное изображение.
Входное изображение rgb можно задать одной матрицей размера MxNx3 либо тремя отдельными переменными — R, G и B, соответствующими трем цветовым каналам: красному, зеленому и синему.
Функция возвращает индексированное изображение x и цветовую карту map, которые позволяют представить изображение в точности так же, как входное. Дизеринг и другие способы квантования цвета не выполняются. Выходной класс индексированного изображения x может быть uint8, uint16 или double — выбирается класс, необходимый для упорядоченного задания количества уникальных цветов изображения (равного числу строк в map).
Поддерживаются также многомерные индексированные изображения (размера MxNx3xK), как в виде одного входного аргумента (rgb), так и в виде трех отдельных переменных для цветовых каналов.
-
:
rgb =ind2rgb(x, map) -
:
[R, G, B] =ind2rgb(x, map) -
Преобразовать индексированное изображение в компоненты красного, зеленого и синего цветов.
Изображение x должно быть индексированным; оно будет преобразовано с использованием цветовой карты map. Если в map недостаточно цветов для изображения, пикселям x, индексы которых выходят за допустимый диапазон, назначается последний цвет карты.
Результатом может быть одно RGB-изображение (матрица размера MxNx3, где M и N — размеры исходного изображения x, а третий размер соответствует красному, зеленому и синему каналам). Также можно вернуть отдельные матрицы размера MxN для красного, зеленого и синего цветов.
Поддерживаются также многомерные индексированные изображения (размера MxNx1xK).
В Octave также предусмотрены средства для создания и работы со структурами кадров фильма. Эти структуры содержат данные изображения (поле "cdata") вместе с соответствующей цветовой картой (поле "colormap").
-
:
frame =getframe() -
:
frame =getframe(hax) -
:
frame =getframe(hfig) -
:
frame =getframe(…, rect) -
Захватить рисунок или оси в виде структуры кадра фильма.
Если аргумент не указан, захватываются текущие оси без подписей делений, заголовка и подписей осей x/y/z. Возвращаемая структура frame содержит поле
cdata, в котором хранятся фактические данные изображения в виде матрицы uint8 размера NxMx3 (RGB), содержащей физические пиксели экрана, и полеcolormap, предусмотренное для совместимости с MATLAB, но всегда пустое.Если первый аргумент hax — дескриптор осей, захватываются эти оси, а не текущие оси, возвращаемые функцией
gca.Если первый аргумент hfig — дескриптор рисунка, захватывается весь холст соответствующего рисунка.
Наконец, если задан второй аргумент rect, он должен быть вектором из четырех элементов ([left bottom width height]), задающим область внутри рисунка для захвата. Независимо от значения свойства
"units"рисунка, rect должен быть задан в пикселях.
-
: 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, фильм воспроизводится в этом рисунке или этих осях, а не в текущих осях.
-
:
[x, map] =frame2im(frame) -
Преобразовать кадр фильма в индексированное изображение.
Кадр фильма — это просто структура с полями
"cdata"и"colormap".Поддержка N-мерных изображений или фильмов обеспечивается, если frame — массив структур. В таких случаях x будет иметь размер MxNx1xK или MxNx3xK для индексированных и RGB-фильмов соответственно, причем кадры объединяются вдоль четвертого измерения.
-
:
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 циклическая четырехцветная карта: красный, белый, синий, черный. lines циклическая цветовая карта с цветами из свойства "ColorOrder"осей.prism циклическая шестицветная карта: красный, оранжевый, желтый, зеленый, синий, фиолетовый. ————- ——————————————————————————————— 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 столбцами. Каждая строка представляет один цвет. Три столбца содержат интенсивности красного, зеленого и синего каналов соответственно.
Все значения цветовой карты должны находиться в диапазоне [0 1], но это не проверяется. Каждая функция должна самостоятельно определять, как обрабатывать значения за пределами этого диапазона.
Следующие функции возвращают предопределенные цветовые карты — те же карты, которые можно запросить по имени с помощью функции colormap.
-
: rgbplot
(cmap) -
: rgbplot
(cmap, style) -
:
h =rgbplot(…) -
Построить график компонентов цветовой карты.
Для отображения cmap доступны два значения параметра style:
- 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) -
Создать цветовую карту cubehelix.
Цвета этой карты изменяются от черного к белому через оттенки синего, зеленого и красного, причем воспринимаемая интенсивность монотонно возрастает. Это достигается прохождением через цветовой куб от черного к белому по спирали — отсюда название cubehelix; при этом учитывается воспринимаемая яркость каждого канала в соответствии со спецификациями NTSC 1953 года.
rgbplot (cubehelix (256))
Аргумент n должен быть скаляром. Если он не задан, используется длина текущей цветовой карты или значение 64.
Источник: Green, D. A., 2011, Цветовая схема для отображения изображений астрономической интенсивности, Bulletin of the Astronomical Society of India, 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.
-
:
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 не задано, используется размер текущей цветовой карты.
Следующие три функции изменяют существующую цветовую карту, а не заменяют ее.
-
:
map_out =brighten(beta) -
:
map_out =brighten(map, beta) -
:
map_out =brighten(h, beta) -
: brighten
(…) -
Осветлить или затемнить цветовую карту.
Аргумент beta должен быть скаляром от -1 до 1: отрицательное значение затемняет цветовую карту, а положительное — осветляет ее.
Если аргумент map опущен, функция применяется к текущей цветовой карте.
Первым аргументом также может быть допустимый графический дескриптор h; в этом случае
brightenприменяется к цветовой карте, связанной с этим дескриптором.Если выходное значение не указано, результат записывается в текущую цветовую карту.
-
: 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]. Если указан цвет, для осей и фигуры задается новый цвет, а затем цвета дочерних объектов корректируются так, чтобы обеспечить некоторый контраст (видимость) на новом фоне.
Следующие функции можно использовать для работы с цветовыми картами.
-
:
[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.
-
:
[Y, newmap] =cmpermute(X, map) -
:
[Y, newmap] =cmpermute(X, map, index) -
Изменить порядок цветов в цветовой карте.
При вызове только с двумя аргументами
cmpermuteслучайным образом переставляет цвета в цветовой карте map и возвращает новую цветовую карту newmap. Функция также возвращает индексированное изображение Y, эквивалентное исходному входному изображению X при отображении с использованием newmap.При вызове с необязательным третьим аргументом порядок цветов в новой цветовой карте задается параметром index.
Внимание: index не должен содержать повторяющихся элементов, иначе функция завершится с ошибкой.
© 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/Representing-Images.html