imresize

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

Синтаксис

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

Описание

пример

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

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

пример

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

пример

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

Этот синтаксис не поддержан на графическом процессоре.

пример

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

Только 'bicubic' и методы интерполяции 'cubic' поддерживаются на графическом процессоре.

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

Этот синтаксис не поддержан на графическом процессоре.

Примеры

свернуть все

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

I = imread('rice.png');

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

J = imresize(I, 0.5);

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

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

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

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

I = im2double(gpuArray(imread('rice.png')));

Измените размер изображения, выполнив операцию на графическом процессоре.

J = imresize(I, 0.5);

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

figure
imshow(I)
title('Original')
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')

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

RGB = gpuArray(im2single(imread('peppers.png')));

Измените размер изображения, выполнив операцию на графическом процессоре.

RGB2 = imresize(RGB, 0.5);

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

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

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

свернуть все

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

Чтобы изменить размер изображений с помощью графического процессора, задайте I как gpuArray, который содержит числовой массив типа данных double или single.

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

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

  • Если scale - меньше чем 1, то выходное изображение (J или Y) меньше, чем входное изображение (I или X).

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

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

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

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

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

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

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

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

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

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

  • Если method ближайшего соседа ('nearest'), то значением по умолчанию 'Antialiasing' является false.

  • Для всех других методов интерполяции значением по умолчанию является true.

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

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

  • 'original' — Выходная палитра newmap совпадает с входной палитрой map.

  • 'optimized'imresize возвращает новую оптимизированную палитру.

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

Типы данных: 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 элементами положительных чисел.

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

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

свернуть все

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

Если изображение изменено с помощью графического процессора, то J возвращен как gpuArray, содержащий числовой массив.

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

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

Советы

  • Функциональный imresize изменяется в версии 5.4 (R2007a). Предыдущие версии Image Processing Toolbox™ использовали различный алгоритм по умолчанию. Если вам нужны те же результаты, приведенные предыдущей реализацией, используйте функциональный imresize_old.

  • Существует небольшое числовое различие между результатами imresize на центральном процессоре и графическом процессоре. Эти различия происходят справа и нижние границы изображения и едва примечательны невооруженным глазом.

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

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

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

| | | |

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