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