В этом примере показано, как изменить размер изображения с помощью imresize
функция.
Чтение изображения в рабочую область.
I = imread('circuit.tif');
Измените размер изображения, используя imresize
функция. В этом примере задается коэффициент увеличения. Чтобы увеличить изображение, задайте коэффициент увеличения больше 1.
J = imresize(I,1.25);
Отображение оригинального изображения рядом с увеличенной версией.
figure imshowpair(I,J,'montage') axis off
Снова измените размер изображения, на этот раз задав требуемый размер выходного изображения, а не значение увеличения. Передайте imresize
вектор, который содержит количество строк и столбцов в выходном изображении. Если заданный размер не дает того же соотношения сторон, что и входное изображение, выходное изображение будет искажено. Если вы задаете один из элементов вектора следующим NaN
, imresize
вычисляет значение этой размерности, чтобы сохранить соотношение сторон изображения. Чтобы выполнить изменение размера, требуемое для обработки с мультиразрешениями, используйте impyramid
.
K = imresize(I,[100 150]); figure, imshow(K)
Снова измените размер изображения, на этот раз задав метод интерполяции. Когда вы увеличиваете изображение, выходное изображение содержит больше пикселей, чем оригинальное изображение. imresize
использует интерполяцию, чтобы определить значения этих пикселей, вычисляя взвешенное среднее значение некоторого набора пикселей в непосредственной близости от местоположения пикселя. imresize
основывает веса на расстоянии, на котором находится каждый пиксель от точки. По умолчанию imresize
использует бикубическую интерполяцию, но можно задать другие методы интерполяции или ядра интерполяции. Смотрите imresize
страница с описанием для полного списка. Можно также задать собственное пользовательское ядро интерполяции. В этом примере используется билинейная интерполяция.
L = imresize(I,1.5,'bilinear');
figure, imshow(L)
Снова измените размер изображения, на этот раз сократив изображение. Когда вы уменьшаете размер изображения, вы теряете некоторые исходные пиксели, потому что в выходном изображении меньше пикселей. Это может ввести программные продукты, такие как сглаживание. Сглаживание, которое происходит в результате уменьшения размера, обычно появляется как ступенчатые шаблоны (особенно в высококонтрастных изображениях) или как муар (эффект пульсации), шаблоны в выходном изображении. По умолчанию imresize
использует сглаживание, чтобы ограничить влияние сглаживания на выходное изображение для всех типов интерполяции, кроме ближайшего соседа. Чтобы выключить сглаживание, задайте параметр 'Antialiasing' и установите значение false. Даже при включенном сглаживании изменение размера может ввести программные продукты, потому что информация всегда теряется, когда вы уменьшаете размер изображения.
M = imresize(I,.75,'Antialiasing',false);
figure, imshow(M)