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

Метод интерполяции или ядро в виде строкового скаляра, вектора символов или массива ячеек с 2 элементами.

Когда 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.

Типы данных: логический

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

ЗначениеОписание
'original'Карта цвета вывода newmap совпадает с входной картой цветов map.
'optimized'imresize возвращает новую карту оптимизированного цвета.

'Colormap' аргумент допустим только, когда изменение размеров индексировало изображения.

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

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

'Dither' аргумент допустим только, когда изменение размеров индексировало изображения.

Типы данных: логический

Метод интерполяции в виде разделенной запятой пары, состоящей из 'Method' и скалярная строка, вектор символов или массив ячеек с 2 элементами. Для получения дополнительной информации смотрите 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). Предыдущие версии Image Processing Toolbox™ использовали различный алгоритм по умолчанию. Если вам нужны те же результаты, приведенные предыдущей реализацией, используйте функциональный imresize_old.

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

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

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