Изменение размера изображения с помощью функции imesize

В этом примере показано, как изменить размер изображения с помощью imresize функция.

Задайте Значение Увеличения

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

I = imread('circuit.tif');

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

J = imresize(I,1.25);

Отображение оригинального изображения рядом с увеличенной версией.

figure
imshowpair(I,J,'montage')
axis off

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

Задайте размер выходного изображения

Снова измените размер изображения, на этот раз задав требуемый размер выходного изображения, а не значение увеличения. Передайте imresize вектор, который содержит количество строк и столбцов в выходном изображении. Если заданный размер не дает того же соотношения сторон, что и входное изображение, выходное изображение будет искажено. Если вы задаете один из элементов вектора следующим NaN, imresize вычисляет значение этой размерности, чтобы сохранить соотношение сторон изображения. Чтобы выполнить изменение размера, требуемое для обработки с мультиразрешениями, используйте impyramid.

K = imresize(I,[100 150]);
figure, imshow(K)

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

Задайте метод интерполяции

Снова измените размер изображения, на этот раз задав метод интерполяции. Когда вы увеличиваете изображение, выходное изображение содержит больше пикселей, чем оригинальное изображение. imresize использует интерполяцию, чтобы определить значения этих пикселей, вычисляя взвешенное среднее значение некоторого набора пикселей в непосредственной близости от местоположения пикселя. imresize основывает веса на расстоянии, на котором находится каждый пиксель от точки. По умолчанию imresize использует бикубическую интерполяцию, но можно задать другие методы интерполяции или ядра интерполяции. Смотрите imresize страница с описанием для полного списка. Можно также задать собственное пользовательское ядро интерполяции. В этом примере используется билинейная интерполяция.

L = imresize(I,1.5,'bilinear');
figure, imshow(L)

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

Предотвратите сглаживание при сжатии изображения

Снова измените размер изображения, на этот раз сократив изображение. Когда вы уменьшаете размер изображения, вы теряете некоторые исходные пиксели, потому что в выходном изображении меньше пикселей. Это может ввести программные продукты, такие как сглаживание. Сглаживание, которое происходит в результате уменьшения размера, обычно появляется как ступенчатые шаблоны (особенно в высококонтрастных изображениях) или как муар (эффект пульсации), шаблоны в выходном изображении. По умолчанию imresize использует сглаживание, чтобы ограничить влияние сглаживания на выходное изображение для всех типов интерполяции, кроме ближайшего соседа. Чтобы выключить сглаживание, задайте параметр 'Antialiasing' и установите значение false. Даже при включенном сглаживании изменение размера может ввести программные продукты, потому что информация всегда теряется, когда вы уменьшаете размер изображения.

M = imresize(I,.75,'Antialiasing',false);
figure, imshow(M)

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

Для просмотра документации необходимо авторизоваться на сайте