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(___,method) задает используемый метод интерполяции.

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

Примеры

свернуть все

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

I = imread('ngc6543a.jpg');

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

J = imresize(I, 0.5);

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

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

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

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

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

I = imread('ngc6543a.jpg');

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

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

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

imshow(I)
title('Original Image')

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

imshow(J)
title('Resized Image Using Nearest Neighbor Interpolation')

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

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

RGB = imread('peppers.png');

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

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

Получите размер измененного изображения.

sz = size(RGB2)
sz = 1×3

    64    86     3

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

imshow(RGB)
title("Original Image")

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

imshow(RGB2)
title("Resized Image with 64 Rows")

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

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

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

Увеличьте размер индексируемого изображения на 50%.

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

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

imshow(X,map)
title("Original Indexed Image and Colormap")

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

imshow(Y,newmap)
title("Resized Image and Optimized Colormap")

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

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

свернуть все

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

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

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

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

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

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

Когда 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 | string | cell

Аргументы name-value

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

Пример: 'Antialiasing',false не выполняет сглаживание при уменьшении изображения

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

  • Если интерполяция method "nearest", затем значение по умолчанию 'Antialiasing' false.

  • Если интерполяция method "box" и входное изображение является категориальным, затем значение по умолчанию 'Antialiasing' false.

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

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

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

ЗначениеОписание
"original"Выходная палитра newmap совпадает с входной палитрой map.
"optimized"imresize возвращает новую оптимизированную палитру.

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Палитра измененного индексируемого изображения Y, возвращенный как m-by-3 числовая матрица. По умолчанию, imresize возвращает новую, оптимизированную палитру с измененным изображением. Чтобы возвратить палитру, которая совпадает с исходной палитрой, используйте 'Colormap' аргумент значения имени.

Советы

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

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

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

(Image Processing Toolbox) |

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