imresize

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

Описание

пример

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

пример

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 contains an axes. The axes with title Original Image contains an object of type image.

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

Figure contains an axes. The axes with title Resized Image contains an object of type image.

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

I = imread('rice.png');

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

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

Отображение исходного и измененного размеров изображения.

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

Figure contains an axes. The axes with title Original Image contains an object of type image.

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

Figure contains an axes. The axes with title Resized Image Using Nearest-Neighbor contains an object of type image.

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

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

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

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

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

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

Figure contains an axes. The axes with title Original Image contains an object of type image.

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

Figure contains an axes. The axes with title Resized Image contains an object of type image.

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

RGB = imread('peppers.png');

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

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

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

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

Figure contains an axes. The axes with title Original Image contains an object of type image.

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

Figure contains an axes. The axes with title Resized Image contains an object of type image.

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

свернуть все

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

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

Коэффициент изменения размера, заданный как положительное число.

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

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

imresize применяет коэффициент шкалы к каждой размерности в изображении. Чтобы применить другой коэффициент изменения размера к каждой размерности, используйте Scale аргумент пары "имя-значение".

Типы данных: 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.

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

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

ЗначениеОписание
'original'Цветовая карта выхода newmap является тем же самым, что и входная карта цветов map.
'optimized'imresize возвращает новую оптимизированную карту цветов.

The 'Colormap' аргумент действителен только при изменении размера индексированных изображений.

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

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

The 'Dither' аргумент действителен только при изменении размера индексированных изображений.

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

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

Совет

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

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

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

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