基于OpenCV的透视变化
2024-01-07 21:31:22
基本概念
透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。
原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下,所以也称为投影映射(Projective Mapping)。
相对仿射变换来说,改变了直线之间的平行关系
透视变换的特点
透视变换相比仿射变换更加灵活,变换后会产生一个新的四边形,但不一定是平行四边形,需要非共线的四个点才能唯一确定
变换后原图中的直线变换后依然是直线
四边形包括了所有的平行四边形,所以透视变换包括了所有的仿射变换
openCV中实现透视变换方法:
首先根据变换前后的四个点用cv.getPerspectiveTransform()生成3×3的变换矩阵
再用cv2.warpPerspective()进行透视变换
OpenCV实现透视变换的函数
函数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个点在转换后的目标图像中的对应坐标
?代码示例
?
文章来源:https://blog.csdn.net/qq_20660115/article/details/135380120
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!