Поворот изображения в Python — методы warpAffine() и getRotationMatrix2D()

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

Он предоставляет несколько встроенных функций для работы с изображениями в качестве входных данных от пользователя. Мы используем метод cv2.getRotationMatrix2D() для преобразования матрицы и метод cv2.warpAffine() для поворота изображения на основе преобразования матрицы.

Поворот изображения в Python

Чтобы повернуть изображение в Python, примените матричное преобразование. Чтобы создать матричное преобразование, используйте метод cv2.getRotationMatrix2D() и передайте начало координат, вокруг которого мы хотим, чтобы произошло вращение. Если мы передаем начало координат(0, 0), то преобразование матрицы начнется с верхнего левого угла. Функция getRotationMatrix2D() вычисляет аффинную матрицу двумерного вращения.

Затем мы можем указать градусы, на которые мы хотим, чтобы произошло вращение.

На последнем шаге используйте эту матрицу преобразования, чтобы повернуть изображение с помощью метода cv2.warpAffine(), а затем нам нужно передать форму нашего изображения.

Функция warpAffine() применяет к изображению аффинное преобразование. Она преобразует исходное изображение, используя указанную матрицу.

Вывод:

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

Из вывода видно, что наше изображение повернуто из левого верхнего угла на -25 градусов. Поворот изображения — это геометрическое преобразование, и его можно выполнить либо с помощью прямого, либо с помощью обратного преобразования.

Давайте повернем изображение из исходной точки(150, 150) на -30 градусов.

Вывод:

Пример поворота изображения

При аффинном преобразовании все параллельные линии исходного изображения будут похожи на выходном изображении.

Заключение

Методы warpAffine() и getRotationMatrix2D()

Методы warpAffine() и getRotationMatrix2D() выполняют различные геометрические преобразования 2D-изображений в зависимости от того, какие аргументы вы предоставите. Эти функции не изменяют исходное содержимое изображения, а деформируют пиксельную сетку и сопоставляют эту деформированную сетку с окончательным повернутым изображением.

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

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

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