Изменение перспективы изображения с помощью python
Мне нужно изменить перспективу изображения с помощью Python как я могу это сделать? Какие модули отлично подойдут для этой задачи?
Пример:
Источник: Stack Overflow на русском
Мне нужно изменить перспективу изображения с помощью Python как я могу это сделать? Какие модули отлично подойдут для этой задачи?
Пример:
Для изменения перспективы можно воспользоваться этим кодом. Спасибо всем за помощь:)
import cv2
import numpy as np
def change_perspective(image, src_points, dst_points):
# Определение матрицы преобразования
M = cv2.getPerspectiveTransform(src_points, dst_points)
# Применение преобразования перспективы
transformed_image = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0]))
return transformed_image
# Загрузка изображения
image = cv2.imread("i.png")
# Определение точек исходной и целевой перспективы
src_points = np.float32(
[
[0, 0],
[image.shape[1] - 1, 0],
[0, image.shape[0] - 1],
[image.shape[1] - 1, image.shape[0] - 1],
]
)
# Задание процента уменьшения высоты (например, 20% уменьшение)
height_reduction_percentage = 20
reduction_pixels = int(image.shape[0] * (height_reduction_percentage / 100))
# Изменение точек целевой перспективы для желаемого преобразования
dst_points = np.float32(
[
[0, 0],
[image.shape[1] - 1, reduction_pixels],
[0, image.shape[0] - 1],
[image.shape[1] - 1, image.shape[0] - 1 - reduction_pixels],
]
)
# Изменение перспективы изображения
transformed_image = change_perspective(image, src_points, dst_points)
# Отображение исходного и преобразованного изображений
cv2.imshow("i.png", image)
cv2.imshow("ii.png", transformed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()