美文网首页
用透视变换计算PR中边角定位所需的参数

用透视变换计算PR中边角定位所需的参数

作者: 黑山老雕 | 来源:发表于2020-02-05 21:46 被阅读0次

需求

初始需求,我有一个视频,如图:


image.png

我需要把视频中的屏幕部分抠出来,并且拉伸到正常水平。这时候,我就找到了PR中的边角定位效果。参数如下:


image.png

但是这里的定位点的调整很不方便。手动调整了半天都不能调整到所需要的效果。那么我就想计算出这个参数到底应该是什么。首先我想到了坐标系转换。

首先刷一波基础知识

矩阵乘法

讲矩阵乘法的一个帖子:http://ruanyifeng.com/blog/2015/09/matrix-multiplication.html

其实矩阵乘法可以理解成为第一个矩阵的每个行矢量和第二个矩阵的每个列矢量做点积。
百度百科的定义:
矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 [1] 。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。

image.png

向量加减法

向量的加法满足平行四边形法则三角形法则。具体地,两个向量a和b相加,得到的是另一个向量。这个向量可以表示为a和b的起点重合后,以它们为邻边构成的平行四边形的一条对角线,或者表示为将a的终点和b的起点重合后,从a的起点指向b的终点的向量:

两个向量a和b的相减,则可以看成是向量a加上一个与b大小相等,方向相反的向量。又或者,a和b的相减得到的向量可以表示为a和b的起点重合后,从b的终点指向a的终点的向量

向量点积

点积在数学中,又称数量积,内积。a·b=a1b1+a2b2+……+anbn。

向量叉积

又叫向量积,外积。结果是一个向量。方向符合右手法则(C=AxB,当右手的四指从A以不超过180度的转角握向B时,竖起的大拇指指向是C的方向。),模的值为|c|=|a×b|=|a||b|sin<a,b>
叉积的长度|a×b|可以解释成这两个叉乘向量a,b共起点时,所构成平行四边形的面积


image

齐次坐标

参考:https://blog.csdn.net/janestar/article/details/44244849

线性坐标系变换

然后来看坐标系转换。
参考:

  1. https://blog.csdn.net/unclerunning/article/details/70893118
  2. https://blog.csdn.net/unclerunning/article/details/70948696
  3. https://zhuanlan.zhihu.com/p/23130870
  4. https://www.cnblogs.com/zhoug2020/p/7864898.html

4 讲述了结果,但是1更好地讲述了过程,
对于只有旋转的情况:

image
image.png
归纳起来就是:
原坐标乘以一个转换矩阵B就能得到新坐标系中的坐标值。

透视变换

参考:
https://blog.csdn.net/xiaowei_cqu/article/details/26471527
https://blog.csdn.net/xiaowei_cqu/article/details/26478135

在OpenCV中,提供了用来计算变换矩阵的函数getperspectivetransform, 根据文档,透视变换矩阵是一个3*3的矩阵

image

相关文章

  • 用透视变换计算PR中边角定位所需的参数

    需求 初始需求,我有一个视频,如图: 我需要把视频中的屏幕部分抠出来,并且拉伸到正常水平。这时候,我就找到了PR中...

  • 用矩阵表述变换与齐次坐标

    一、线性变换与仿射变换的概念 我们知道在计算机图形学中,变换通常包含线性变换、仿射变换、透视变换等。并且,我们用4...

  • 定位+透视变换

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

  • opencv透视变换(python)

    分两步: 1-获得透视变换参数 mat = cv2.getPerspectTransform(pts1,pts2)...

  • 透视变换(补充)

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

  • opencv python版-lesson 11

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

  • 函数柯里化

    定义 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数...

  • js柯里化

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函...

  • 柯里化函数

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函...

  • 函数柯里化

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函...

网友评论

      本文标题:用透视变换计算PR中边角定位所需的参数

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