Изменение размера изображения
возвращает изображение J
= imresize(I
,[numrows
numcols]
)J
количество строк и столбцов, заданное вектором [numrows numcols]
.
[
изменение размера индексированного изображения Y
,newmap
]
= imresize(X
,map
,___)X
с цветовой картой map
. По умолчанию imresize
возвращает оптимизированную карту цветов, newmap
, с измененным размером индексированного изображения. Чтобы вернуть карту цветов, которая совпадает с исходной картой цветов, используйте Colormap
аргумент пары "имя-значение".
___ = imresize(___,
использует аргументы пары "имя-значение" для управления различными аспектами операции изменения размера.Name,Value
)
Чтение изображения в рабочую область.
I = imread('rice.png');
Измените размер изображения, задав масштабный коэффициент и используя метод интерполяции по умолчанию и сглаживание.
J = imresize(I, 0.5);
Отображение исходного и измененного размеров изображения.
figure
imshow(I)
title('Original Image')
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')
I
- Изображение, которое будет изменено в размереИзображение, которое должно быть изменено в виде числа, логического или категориального массива любой размерности. Если I
имеет более двух размерности, тогда imresize
изменение размера только первых двух размерностей.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
| categorical
scale
- Коэффициент изменения размераКоэффициент изменения размера, заданный как положительное число.
Если scale
меньше 1, тогда выходное изображение меньше, чем вход изображение.
Если scale
больше 1, тогда выходное изображение больше, чем вход изображение.
imresize
применяет коэффициент шкалы к каждой размерности в изображении. Чтобы применить другой коэффициент изменения размера к каждой размерности, используйте Scale
аргумент пары "имя-значение".
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
[numrows numcols]
- размерности строки и столбца выходного изображенияРазмерности строк и столбцов выходного изображения, заданные как 2-элементный вектор положительных целых чисел. Можно задать значение NaN
для любого из numrows
или numcols
. В этом случае imresize
автоматически вычисляет количество строк или столбцов для этой размерности, сохраняя соотношение сторон изображения.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
X
- Индексированное изображение, которое будет изменено в размереИндексированное изображение, размер которого будет изменен, задается как числовой массив.
Типы данных: double
| uint8
| uint16
map
- ПалитраПалитра связана с индексированным изображением X
, заданный как c -by-3 числовая матрица со значениями в области значений [0, 1]. Каждая строка является трехэлементным триплетом RGB, который задает красный, зеленый и синий компоненты одного цвета цветовой карты.
Типы данных: double
method
- Метод интерполяции или ядроМетод интерполяции или ядро, заданный как строковый скаляр, вектор символов или 2-элементный массив ячеек.
Когда method
является строковым скаляром или вектором символов, он идентифицирует конкретный метод или именованное ядро интерполяции, перечисленное в следующей таблице.
Метод | Описание |
---|---|
| Интерполяция по ближайшему соседу; пикселю выхода присваивается значение пикселя, в который попадает точка. Другие пиксели не рассматриваются. Интерполяция по ближайшему соседу является единственным методом интерполяции, поддерживаемым для категориальных изображений, и это метод по умолчанию для изображений этого типа. |
| Билинейная интерполяция; значение выхода пикселя является взвешенным средним значением пикселей в ближайшей окрестности 2 на 2. |
| Бикубическая интерполяция; значение выхода пикселя является взвешенным средним значением пикселей в ближайшей окрестности 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
Выполните сглаживание при сжатии изображения, заданное как разделенная разделенными запятой парами, состоящая из 'Antialiasing'
и true
или false
.
Если method
является 'nearest'
, затем значение по умолчанию 'Antialiasing'
является false
.
Если интерполяция method
является 'box'
ядро интерполяции и входа образ категоричны, тогда значение по умолчанию 'Antialiasing'
является false
.
Для всех других методов интерполяции по умолчанию используется true
.
Типы данных: logical
'Colormap'
- Возвращает оптимизированную или оригинальную карту цвета'optimized'
(по умолчанию) | 'original'
Верните оптимизированную или исходную карту цвета для индексированного изображения, заданную как разделенная разделенными запятой парами, состоящая из 'Colormap'
и одно из следующих.
Значение | Описание |
---|---|
'original' | Цветовая карта выхода newmap является тем же самым, что и входная карта цветов map . |
'optimized' | imresize возвращает новую оптимизированную карту цветов. |
The 'Colormap'
аргумент действителен только при изменении размера индексированных изображений.
Типы данных: char
| string
'Dither'
- Выполните цветопередачуtrue
(по умолчанию) | false
Выполните цветоделение, заданное как разделенная разделенными запятой парами, состоящая из 'Dither'
и true
или false
. При дитеринге вы применяете форму шума к изображению, чтобы рандомизировать ошибку квантования и предотвратить крупномасштабные шаблоны.
The 'Dither'
аргумент действителен только при изменении размера индексированных изображений.
Типы данных: logical
'Method'
- Метод интерполяцииМетод интерполяции, заданный как разделенная разделенными запятой парами, состоящая из 'Method'
и скалярную строку, вектор символов или 2-элементный массив ячеек. Для получения дополнительной информации смотрите method
.
Типы данных: char
| string
| cell
'OutputSize'
- Размер выходного изображенияРазмер выходного изображения, заданный как разделенная разделенными запятой парами, состоящая из 'OutputSize'
и 2-элементный вектор положительных целых чисел вида [numrows numcols]
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'Scale'
- Изменение размера масштабного коэффициентаИзмените размер масштабного коэффициента, заданного как разделенная разделенными запятой парами, состоящая из 'Scale'
и положительное число или 2-элементный вектор положительных чисел. Если вы задаете скаляр, то imresize
применяет один и тот же масштабный коэффициент к каждой размерности на изображении. Если вы задаете вектор с 2 элементами, то imresize
применяет разное значение шкалы к каждой размерности.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
J
- Изменение размера изображенияИзмененный размер изображения, возвращенный в виде числового, логического или категориального массива того же класса, что и входное изображение, I
.
Y
- Изменение размера индексированного изображенияИзмененный размер индексированного изображения, возвращенный как числовой массив того же класса, что и входа индексируемое изображение, X
.
newmap
- Оптимизированная палитраОптимизированная палитра, возвращенная как c-на-3 числовая матрица со значениями в области значений [0, 1]. Каждая строка является трехэлементным триплетом RGB, который задает красный, зеленый и синий компоненты одного цвета цветовой карты.
Функция imresize
изменен в версии 5.4 (R2007a). Предыдущие версии Image Processing Toolbox™ по умолчанию использовали другой алгоритм. Если вам нужны те же результаты, что и в предыдущей реализации, используйте функцию imresize_old
.
Если размер выходного изображения не является целым числом, то imresize
не использует указанную шкалу. imresize
использует ceil
при вычислении размера выходного изображения.
Указания и ограничения по применению:
imresize
поддерживает генерацию Кода С (требует MATLAB® Coder™). Для получения дополнительной информации смотрите Генерация кода для обработки изображений.
Синтаксисы, поддерживающие индексированные изображения, не поддерживаются, включая именованные параметры 'Colormap'
и 'Dither'
.
Пользовательские ядра интерполяции не поддерживаются.
Все аргументы пары "имя-значение" должны быть константами во время компиляции.
Указания и ограничения по применению:
'Colormap'
и 'Dither'
аргументы пары "имя-значение" не поддерживаются.
Индексированные изображения не поддерживаются.
Пользовательские ядра интерполяции не поддерживаются.
Все пары "имя-значение" должны быть константами времени компиляции.
Для определенных ядер интерполяции может быть небольшое численное несоответствие между результатами в MATLAB и сгенерированным кодом.
Указания и ограничения по применению:
gpuArray
вход с более чем 227 элементы не поддерживаются.
gpuArray
вход должен быть не разреженным.
gpuArray
вход с базовым типом categorical
не поддерживается.
Индексированные изображения не поддерживаются на графическом процессоре.
Если вы используете бикубическую интерполяцию, выходное изображение может иметь некоторые значения, немного выходящие за пределы области значений пикселей во входном изображении.
Существует небольшое числовое различие между результатами imresize
на центральном процессоре и графическом процессоре. Эти различия происходят на правой и нижней границах изображения и едва заметны невооружённым глазом.
Для получения дополнительной информации смотрите Обработка изображений на графическом процессоре.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.