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)

Figure contains an axes. The axes contains an object of type image.

Figure contains an axes. The axes contains an object of type image.

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

I = imread('ngc6543a.jpg');

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

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

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

figure 
imshow(I)

Figure contains an axes. The axes contains an object of type image.

figure
imshow(J)

Figure contains an axes. The axes contains an object of type image.

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

RGB = imread('peppers.png');

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

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

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

figure
imshow(RGB)

Figure contains an axes. The axes contains an object of type image.

figure
imshow(RGB2)

Figure contains an axes. The axes contains an object of type image.

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

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

Сужение индексированного изображения в два раза.

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

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

figure
imshow(X,map)

Figure contains an axes. The axes contains an object of type image.

figure
imshow(Y, newmap)

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

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

Типы данных: 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 числовым массивом -на 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.

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

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

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

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

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

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

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

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

.

См. также

| (Image Processing Toolbox) | (Набор Image Processing Toolbox) | (Набор Image Processing Toolbox) | (Набор Image Processing Toolbox) | (Parallel Computing Toolbox)

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