imresize

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

Описание

пример

B = imresize(A,scale) возвращается отображают B это - scale времена размер A. Входное изображение A может быть шкала полутонов, RGB или двухуровневое изображение. Если A имеет больше чем две размерности, imresize только изменяет размер первых двух размерностей. Если scale находится в области значений [0, 1], B меньше, чем A. Если scale больше 1, B больше, чем A. По умолчанию, imresize бикубическая интерполяция использования.

пример

B = imresize(A,[numrows numcols]) возвращается отображают B это имеет количество строк и столбцов, заданных двухэлементным векторным [numrows numcols].

пример

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

пример

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

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

Примеры

свернуть все

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

I = imread('ngc6543a.jpg');

Уменьшите изображение фактором два.

J = imresize(I, 0.5);

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

figure, imshow(I), figure, imshow(J)

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

I = imread('ngc6543a.jpg');

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

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

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

figure 
imshow(I)

figure
imshow(J)

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

RGB = imread('peppers.png');

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

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

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

figure
imshow(RGB)

figure
imshow(RGB2)

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

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

Уменьшите индексируемое изображение фактором два.

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

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

figure
imshow(X,map)

figure
imshow(Y, newmap)

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

свернуть все

Отобразите, чтобы быть измененными, заданными как действительный, неразреженный числовой массив.

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

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

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

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

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

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

Пример: [X2, newmap] = imresize(X,map,0.75);

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

Палитра сопоставлена с индексируемым изображением, m-by-3 числовой массив.

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

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

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

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

'nearest'

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

'bilinear'

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

'bicubic'

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

Примечание

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

Ядро интерполяцииОписание
'box'Ядро, имеющее форму поля
'triangle'Треугольное ядро (эквивалентный 'bilinear')
'cubic'Кубическое ядро (эквивалентный 'bicubic')
'lanczos2'Ядро Lanczos-2
'lanczos3'Ядро Lanczos-3

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

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

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

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

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

Выполните сглаживание при уменьшении изображения, заданного как разделенная запятой пара, состоящая из 'Antialiasing' и логическое булево значение true или false. Значение по умолчанию зависит от метода интерполяции. Если метод ближайшего соседа ('nearest'), значением по умолчанию является false. Для всех других методов интерполяции значением по умолчанию является true.

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

Возвратите оптимизированную палитру, заданную как разделенная запятой пара, состоящая из 'Colormap' и вектор символов 'optimized' или 'original'. (Только индексируемые изображения). Если установлено в 'original', выходная палитра (newmap) совпадает с входной палитрой (map). Если установлено в 'optimized'imresize возвращает новую оптимизированную палитру.

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Оптимизированная палитра, возвращенная как m-by-3 числовой массив.

Советы

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

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

Смотрите также

| | | | |

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