import cv2
import numpy as np
# 读取图像
src_img = cv2.imread('input.jpg')
# 定义源三角形顶点和目标三角形顶点(格式为np.float32)
src_triangle = np.float32([[50, 50], [200, 50], [50, 200]])
dst_triangle = np.float32([[10, 100], [200, 50], [100, 250]])
# 计算仿射变换矩阵
affine_matrix = cv2.getAffineTransform(src_triangle, dst_triangle)
# 应用仿射变换
transformed_img = cv2.warpAffine(
src_img,
affine_matrix,
(src_img.shape:ml-citation{ref="3" data="citationList"}, src_img.shape), # 输出图像尺寸
flags=cv2.INTER_LINEAR, # 插值方法
borderMode=cv2.BORDER_CONSTANT, # 边界填充方式
borderValue=(0, 0, 0) # 填充值(黑色)
)
# 显示结果
cv2.imshow('Original', src_img)
cv2.imshow('Transformed', transformed_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
基于OpenCV实现三角形仿射变换(Python)
最新推荐文章于 2025-04-03 22:57:31 发布