Этот пример показывает, как изменить размер изображения с помощью функции 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
, сглаживающееся, чтобы ограничить влияние искажения на выходном изображении для всей интерполяции, вводит кроме самого близкого соседа. Чтобы выключить сглаживание, задайте 'Сглаживающийся' параметр и установите значение ко лжи. Даже со сглаживанием включенного, изменение размеров может ввести артефакты, потому что информация всегда теряется, когда вы уменьшаете размер изображения.
M = imresize(I,.75,'Antialiasing',false);
figure, imshow(M)