imresize

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

Синтаксис

B = imresize(A,scale)
B = imresize(A,[numrows numcols])
[Y,newmap] = imresize(X,map,___)
___ = imresize(___,method)
___ = imresize(___,Name,Value)

Описание

пример

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)

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

свернуть все

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | логический

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

Типы данных: 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, карта, 0.75);

Типы данных: удвойтесь | uint8 | uint16

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

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

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

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

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

самый близкий

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

'bilinear'

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

'bicubic'

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

Примечание

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

Ядро интерполяцииОписание
полеЯдро, имеющее форму поля
'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) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: I2 = imresize (я, 0.5, 'Сглаживание', ложь);

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

Советы

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

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

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

| | | | |

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

Была ли эта тема полезной?