Изменение размера изображения в Python с помощью библиотеки OpenCV

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

В этом примере мы увидим, как изменить размер изображения в Python с помощью библиотеки OpenCV.

Сначала мы импортируем модуль cv2, а затем используем метод cv2.resize() для изменения размера изображений в Python.

Метод cv2.resize() в Python

Чтобы изменить размер изображений в Python с помощью OpenCV, используйте метод cv2.resize(). OpenCV предоставляет нам ряд методов интерполяции для изменения размера изображения.

Изменение изображения означает изменение его размеров. Размерами могут быть ширина, высота или и то, и другое. Кроме того, соотношение сторон исходного изображения может быть сохранено в изображении с измененным размером. Для изменения размера изображения OpenCV предоставляет функцию cv2.resize().

Как изменить размер изображения в Python

Метод интерполяции для изменения размера параметров

  1. cv2.INTER_AREA: этот параметр используется, когда нам нужно уменьшить изображение.
  2. cv2.INTER_CUBIC: этот вариант работает медленно, но более эффективно.
  3. cv2.INTER_LINEAR: этот параметр в основном используется, когда требуется масштабирование. Это метод интерполяции по умолчанию в OpenCV.

Синтаксис

Параметры

Параметр Описание
src Этот параметр является обязательным и является исходным/входным изображением.
dsize Это обязательный параметр и желаемый размер выходного изображения.
fx Это необязательный параметр и коэффициент масштабирования по горизонтальной оси.
fy Это необязательный коэффициент масштабирования по вертикальной оси.
interpolation Это необязательный флаг, который принимает один из следующих методов.

INTER_NEAREST – это интерполяция ближайшего соседа.

INTER_LINEAR — это билинейная интерполяция(используется по умолчанию).

INTER_AREA — передискретизация с использованием отношения площади пикселя. Это может быть предпочтительной функцией для прореживания изображения, поскольку она дает результаты без муара. Но когда изображение масштабируется, это похоже на метод INTER_NEAREST.

INTER_CUBIC — это бикубическая интерполяция по окрестностям 4×4 пикселей. INTER_LANCZOS4 — это интерполяция Ланцоша по окрестностям 8×8 пикселей.

Пример

Вывод:

Изменение размера изображения

В этом примере мы импортировали библиотеки cv2 и matplotlib. На следующем шаге мы определили путь к изображению и считываем изображение с помощью метода imread().

Затем мы изменяем размер изображений с четырьмя различными параметрами, используя метод cv2.resize().

  1. Обычное изображение
  2. Половина изображения
  3. Увеличенное изображение
  4. Изображение Stretch_near

А затем мы отображаем изображения одно за другим, используя цикл for. Мы используем библиотеку matplotlib для построения четырех изображений с их заголовком.

Уменьшение масштаба с помощью resize()

В следующем коде значение scale_percent содержит процент, на который должно быть масштабировано изображение. Предоставление значения <100 уменьшает предоставленное изображение.

Мы будем использовать это значение scale_percent вместе с размерами исходного изображения для расчета ширины и высоты выходного изображения. Мы предоставим 20% scale_percent. Таким образом, он изменит размер до 20% от исходного размера изображения.

Вывод:

Как изменить размер изображения в Python

Масштабирование изображения с помощью Python cv2 resize()

В следующем коде значение scale_percent содержит процент, на который должно быть масштабировано изображение. Предоставление значения > 100 повышает масштаб предоставленного изображения.

Вывод:

cv2 resize()

Вот и все для метода Python cv2 resize().

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python