imresize

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

Описание

пример

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

Опционально можно изменить размер изображений с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Расширенные Возможности.

пример

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
imshow(J)
title('Resized Image')

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

I = imread('rice.png');

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

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

Отобразите оригинал и измененное изображение.

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

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

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

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

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

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

Отобразите оригинальное изображение и измененное изображение.

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

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

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

RGB = imread('peppers.png');

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

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

Отобразите оригинальное изображение и измененное изображение.

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

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

Входные параметры

свернуть все

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

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

Измените размер фактора, заданного как положительная скалярная величина.

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

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

imresize применяет масштабный коэффициент к каждой размерности в объеме. Для получения информации об определении различной шкалы для каждой размерности см. 'Шкалу'.

Типы данных: 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. В размывании вы применяете форму шума к изображению, чтобы рандомизировать ошибку квантования и предотвратить крупномасштабные шаблоны.

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

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

Метод интерполяции, заданный как разделенная запятой пара, состоящая из '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 не использует заданную шкалу. imresize использование ceil при вычислении размера выходного изображения.

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

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

Для просмотра документации необходимо авторизоваться на сайте