美文网首页OpenCV
透视变换之变换为鸟瞰图

透视变换之变换为鸟瞰图

作者: SIENTIST | 来源:发表于2018-09-01 18:20 被阅读0次

仿射变换:能够将平行四边形变换为另一个平行四边形
透视变换:能够将平行四边形变换为梯形。
仿射变换是透视变换的子集。

先说仿射变换:
仿射变换的数学表达式为



要求出该变换矩阵,需要六个独立的方程,即需要3组不共线的点才能求解。

——————————————————————
再说透视变换:
透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

透视变换的通用公式为:



其中的变换矩阵各部分负责:


透视变换的数学表达式为:

所以,给定透视变换对应的四对像素点坐标,即原图的坐标和变换后的坐标,联立公式可求得透视变换矩阵;
反之,给定透视变换矩阵,即可对图像或像素点坐标完成透视变换。

图像进行透视变换的2个重要函数:

Mat getPerspectiveTransform(const Point2f src[], const Point2f dst[])

src[]为原图的四个坐标点,dst[]为变换后图像上对应的四个坐标点
函数返回值即为透视变换的矩阵
void perspectiveTransform(InputArray src, OutputArray dst, InputArray m)
src为输入的图片, dst为透视变换后的图片, 
m为变换矩阵,就是用上面的getPerspectiveTransform计算出来的

这是我做的鸟瞰图变换:


原图
透视变换后

可以看到,效果还是不错的。只是远的地方就有些变形了

把近处图像的放大了看,鸟瞰图变换的效果是可以的

图片.png

锥桶太碍事了,拿一个没有锥桶的图变换看看:
(我在图上人为画了些直线,以获得更好的观测效果)


原图 透视变换后

把近处图像放大,鸟瞰图变换还是不错的

放大近处的图像

相关文章

  • 透视变换之变换为鸟瞰图

    仿射变换:能够将平行四边形变换为另一个平行四边形透视变换:能够将平行四边形变换为梯形。仿射变换是透视变换的子集。 ...

  • opencv python版-lesson 11

    缩放,平移,旋转.仿射变换,透视变换

  • OpencvSharp-图像修正

    OpencvSharp 使用透视变换。

  • matlab

    透视变换 There is a transformPointsForward function that you ...

  • CoreAnimation之变换

    CoreAnimation之CALayer基础 1. CGAffineTransform CGAffineTran...

  • 错觉

    年代的变换随之变换的应该还有一些风俗习惯。

  • 透视变换(补充)

    一 前言   之前在公众号中写过一篇文章——图像处理的仿射变换与透视变换,这篇文章是对透视变换做了进一步深入研究。...

  • OpenCV 透视变换

    平时在拍照片时难免不小心把照片拍歪了,这时候可以使用透视变换矫正拍歪的照片! 效果 源代码

  • 定位+透视变换

    https://www.cnblogs.com/little-monkey/p/7429579.html?tdso...

  • Day21数据透视表

    数据透视表-基本介绍四点 创建数据透视表、数据透视表的整理、转换为普通表格、刷新所有数据透视表 在对数据透视表处理...

网友评论

    本文标题:透视变换之变换为鸟瞰图

    本文链接:https://www.haomeiwen.com/subject/tiluwftx.html