基于OpenCV的透视变换

基础概念

透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下,所以也称为投影映射(Projective Mapping)。

相对仿射变换来说,改变了直线之间的平行关系

透视变换的特点和方法

透视变换相比仿射变换更加灵活,变换后会产生一个新的四边形,但不一定是平行四边形,需要非共线的四个点才能唯一确定

变换后原图中的直线变换后依然是直线

四边形包括了所有的平行四边形,所以透视变换包括了所有的仿射变换

openCV中实现透视变换方法:

首先根据变换前后的四个点用cv.getPerspectiveTransform()生成3×3的变换矩阵

再用cv2.warpPerspective()进行透视变换

函数cv2.warpPerspective()

格式:cv2.warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])

src: 输入图像

M:大小为3×3的转换矩阵

其他参数含义与cv2.warpAffine()函数中的一致

函数cv2.getPerspectiveTransform()

格式:M=cv2.getPerspectiveTransform(src,dst)

src:原图像中4个点的坐标

dst:原图像中4个点在转换后的目标图像中的对应坐标

应用案例

相关推荐
小白|2 分钟前
OpenHarmony + Flutter 混合开发实战:深度集成 AI Kit 实现端侧图像识别与智能分析
人工智能·flutter
ULTRA??10 分钟前
最小生成树kruskal算法实现python,kotlin
人工智能·python·算法
古城小栈12 分钟前
Spring AI Alibaba 重磅更新:Java 的开发新纪元
java·人工智能·spring
智算菩萨15 分钟前
从试错学习到安全进化:强化学习重塑自动驾驶决策与控制
人工智能·机器学习·自动驾驶
腾飞开源15 分钟前
21_Spring AI 干货笔记之 Mistral AI 聊天
人工智能·ocr·多模态·springai·聊天模型·mistral ai·openai兼容
pengzhuofan18 分钟前
用AI武装你的学习:高效掌握Java新技术的方法论
java·人工智能·学习
子午20 分钟前
【岩石种类识别系统】Python+TensorFlow+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
zhaodiandiandian23 分钟前
AI 伦理治理:为智能时代筑牢安全护栏
人工智能·安全
万俟淋曦27 分钟前
【论文速递】2025年第32周(Aug-03-09)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
每日新鲜事27 分钟前
2025新采购峰会圆满落幕,端点科技AI协同供应链平台正式发布
人工智能·百度