exponenta event banner

imresize

Изменить размер изображения

Описание

пример

J = imresize(I,scale) возвращает изображение J то есть scale умножить на размер I. Входное изображение I может представлять собой изображение в градациях серого, RGB, двоичное или категориальное изображение.

пример

J = imresize(I,[numrows numcols]) возвращает изображение J число строк и столбцов, заданное вектором [numrows numcols].

пример

[Y,newmap] = imresize(X,map,___) изменяет размер индексированного изображения X с цветной картой map. По умолчанию imresize возвращает оптимизированную цветовую карту, newmap, с измененным размером индексированного изображения. Чтобы вернуть карту цветов, совпадающую с исходной картой цветов, используйте Colormap аргумент пары имя-значение.

пример

___ = imresize(___,method) задает используемый метод интерполяции.

___ = imresize(___,Name,Value) использует аргументы пары имя-значение для управления различными аспектами операции изменения размера.

Примеры

свернуть все

Чтение изображения в рабочую область.

I = imread('rice.png');

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

J = imresize(I, 0.5);

Отображение исходного изображения и изображения с измененным размером.

figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(J)
title('Resized Image')

Figure contains an axes. The axes with title Resized Image contains an object of type image.

Чтение изображения в рабочую область.

I = imread('rice.png');

Измените размер изображения, задав масштабный коэффициент и метод интерполяции.

J = imresize(I, 0.5, 'nearest');

Отображение исходного изображения и изображения с измененным размером.

figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(J)
title('Resized Image Using Nearest-Neighbor')

Figure contains an axes. The axes with title Resized Image Using Nearest-Neighbor contains an object of type image.

Чтение изображения в рабочую область.

[X, map] = imread('trees.tif');

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

[Y, newmap] = imresize(X, map, 0.5);

Отображение исходного изображения и изображения с измененным размером.

figure
imshow(X,map)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(Y,newmap)
title('Resized Image')

Figure contains an axes. The axes with title Resized Image contains an object of type image.

Чтение изображения в рабочую область.

RGB = imread('peppers.png');

Измените размер изображения, указав, что выходное изображение имеет 64 строки. Давайте imresize вычислить количество столбцов, необходимое для сохранения соотношения сторон.

RGB2 = imresize(RGB, [64 NaN]);

Отображение исходного изображения и изображения с измененным размером.

figure
imshow(RGB)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(RGB2)
title('Resized Image')

Figure contains an axes. The axes with title Resized Image contains an object of type image.

Входные аргументы

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical | categorical

Коэффициент изменения размера, заданный как положительное число.

  • Если scale меньше 1, то выходное изображение меньше входного.

  • Если scale больше 1, то выходное изображение больше входного изображения.

imresize применяет масштабный коэффициент к каждому размеру изображения. Чтобы применить различный коэффициент изменения размера к каждому размеру, используйте Scale аргумент пары имя-значение.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размеры строк и столбцов выходного изображения, заданные как 2-элементный вектор положительных целых чисел. Можно указать значение NaN для любого из них numrows или numcols. В этом случае imresize автоматически вычисляет количество строк или столбцов для этого размера, сохраняя пропорции изображения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Индексированное изображение для изменения размера, указанное как числовой массив.

Типы данных: double | uint8 | uint16

Карта цветов, связанная с индексированным изображением X, задается в виде цифровой матрицы c-by-3 со значениями в диапазоне [0, 1]. Каждая строка представляет собой трехэлементный RGB-триплет, определяющий красный, зеленый и синий компоненты одного цвета карты цветов.

Типы данных: double

Метод интерполяции или ядро, указанное как строковый скаляр, символьный вектор или двухэлементный массив ячеек.

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

МетодОписание

'nearest'

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

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

'bilinear'

Билинейная интерполяция; значение выходного пикселя представляет собой средневзвешенное значение пикселей в ближайшей окрестности 2 на 2.

'bicubic'

бикубическая интерполяция; значение выходного пикселя представляет собой средневзвешенное значение пикселей в ближайшей окрестности 4 на 4. Бикубическая интерполяция является методом по умолчанию для числовых и логических изображений.

Примечание

Бикубическая интерполяция может создавать значения пикселей за пределами исходного диапазона.

Ядро интерполяцииОписание
'box'

Коробчатое ядро

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

'triangle'Треугольное ядро (эквивалентно 'bilinear')
'cubic'Кубическое ядро (эквивалентно 'bicubic')
'lanczos2'Lanczos-2 ядро
'lanczos3'Lanczos-3 ядро

Когда method является 2-элементным массивом ячеек, он определяет пользовательское ядро интерполяции. Массив ячеек имеет вид {f, w}, где f - дескриптор функции для ядра пользовательской интерполяции, а w - ширина пользовательского ядра. f (x) должно быть равно нулю за пределами интервала -w/2 < = x < w/2. Дескриптор функции f может быть вызван со скалярным или векторным входом. Для указанных пользователем ядер интерполяции выходное изображение может иметь некоторые значения, немного выходящие за пределы диапазона значений пикселей во входном изображении.

Типы данных: char | string | cell

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: I2 = imresize(I,0.5,'Antialiasing',false);

Выполнение сглаживания при сжатии изображения, указанного как пара, разделенная запятыми, состоящая из 'Antialiasing' и true или false.

  • Если method является 'nearest', то значение по умолчанию 'Antialiasing' является false.

  • Если интерполяция method является 'box' интерполяционное ядро и входной образ категоричны, то значение по умолчанию 'Antialiasing' является false.

  • Для всех других методов интерполяции значением по умолчанию является true.

Типы данных: logical

Возвращает оптимизированную или исходную цветовую карту для индексированного изображения, заданную как пара, разделенная запятыми, состоящая из 'Colormap' и одно из следующих.

СтоимостьОписание
'original'Выходная карта цветов newmap совпадает с картой входных цветов map.
'optimized'imresize возвращает новую оптимизированную цветовую карту.

'Colormap' допустим только при изменении размера индексированных изображений.

Типы данных: char | string

Выполнить изменение цвета, указанное как разделенная запятыми пара, состоящая из 'Dither' и true или false. При дизеринге к изображению применяется форма шума для рандомизации ошибки квантования и предотвращения крупномасштабных шаблонов.

'Dither' допустим только при изменении размера индексированных изображений.

Типы данных: logical

Метод интерполяции, указанный как разделенная запятыми пара, состоящая из 'Method' и скалярную строку, символьный вектор или двухэлементный массив ячеек. Для получения более подробной информации см. method.

Типы данных: char | string | cell

Размер выходного изображения, определяемый как разделенная запятыми пара, состоящая из 'OutputSize' и 2-элементный вектор положительных целых чисел вида [numrows numcols].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Масштабный коэффициент изменения размера, заданный как разделенная запятыми пара, состоящая из 'Scale' и положительное число или 2-элементный вектор положительных чисел. Если указать скаляр, то imresize применяет одинаковый масштабный коэффициент к каждому размеру изображения. Если задан 2-элементный вектор, то imresize применяет различные значения масштаба к каждому размеру.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Изображение с измененным размером, возвращаемое в виде числового, логического или категориального массива того же класса, что и входное изображение, I.

Изменение размера индексированного изображения, возвращаемого в виде числового массива того же класса, что и введенное индексированное изображение. X.

Оптимизированная карта цветов, возвращаемая в виде цифровой матрицы c-by-3 со значениями в диапазоне [0, 1]. Каждая строка представляет собой трехэлементный RGB-триплет, определяющий красный, зеленый и синий компоненты одного цвета карты цветов.

Совет

  • Функция imresize изменено в версии 5.4 (R2007a). В предыдущих версиях Toolbox™ обработки изображений по умолчанию использовался другой алгоритм. При необходимости получения тех же результатов, что и при предыдущей реализации, используйте функцию. imresize_old.

  • Если размер выходного изображения не является целым числом, то imresize не использует указанный масштаб. imresize использование ceil при расчете размера выходного изображения.

Расширенные возможности

..
Представлен до R2006a