数学变换
与数学相关的内容
zeeq_
A WHU LIESMARSer
展开
-
对图像和相机参数进行同步缩放的方法及python实现代码
相机的内参和图像的大小是紧密相关的。如果在实验中涉及到对图像进行采样,同时还想要获得图像变换后的相机参数,那么,对相机内参也需要进行同步缩放。对相机参数的修改主要包括相机的内参矩阵K和图像的长宽参数,而相机外参和畸变参数则不需要作修改。对图像进行下采样,一般有两种方式,一个是使用python自带的PIL(Pyhon Imaging Labrary)模块实现,另一个是使用cv2实现。至于为何是这样变换的,可以参考。原创 2022-10-02 13:41:40 · 1502 阅读 · 2 评论 -
深入理解三维旋转矩阵——R的行和列分别有什么含义
三维旋转矩阵描述的是在三维空间中物体的旋转关系,我们难以直观地从旋转矩阵上看出旋转的具体情况。但是,它可以由欧拉角变换而来,也就是可以视为绕着xyz三个轴分别进行旋转后结果的叠加,是一系列三角函数相乘的结果。比如,通常我们所使用的rpy角:。下面直接进入正题,理解旋转矩阵中不同元素的含义。记被旋转的点p1坐标为(x1, y1, z1),经过旋转矩阵R的作用后,其在新坐标系下的坐标p2变为(x2, y2, z2)。原创 2022-08-24 09:00:00 · 6613 阅读 · 2 评论 -
使用普鲁克分析对两组相机/三维点(已知对应关系)进行相似变换对齐的方法及python代码
对两组相机进行对齐,需要首先明确相机坐标系的定义方式,有两种:Xworld = RXcamera + tXcamera = RXworld + t 这两种坐标系的定义是不一样的(其实它们就是一个互逆变换的过程),弄错了的话就没法获得正确的转换结果了(关于这两种坐标系的转换关系,这篇博客里有说明)。在明确了坐标系定义之后,就可以进行计算了。 转换代码参考BARF论文github源码,链接。下面将两种坐标系下的相机组对齐方法都放出来。 1 世界坐标系定义 如果你的坐标系是按照如下方原创 2022-05-21 22:34:00 · 1443 阅读 · 0 评论 -
四种三维空间旋转表示方法“轴角、旋转矩阵、欧拉角、四元数”之间的相互转换总结
最近在写BA(bundle adjustment)的时候,遇到了各种不同旋转表示方式的转换问题。之前理解的一知半解的,就有点懵,于是又百度看了一下,就找到了一篇总结的很到位的知乎,就想把它引进到CSDN上哈哈哈。上链接:https://zhuanlan.zhihu.com/p/45404840这篇文章写的挺清楚的,包括轴角、旋转矩阵、欧拉角、四元数之间的转换。不过我发现文章里还少了四元数转轴角的操作,很简单,就在下面小小补充一下:设四元数q = q0+q1i+q2j+q3k对应的轴角为(θ,k),其中原创 2020-12-07 14:55:07 · 1932 阅读 · 0 评论 -
两组三维对应点/坐标系转换公式及简要推导
需要实现的是将源点集变换到目标点集坐标系下。设目标点集共包含n个点,该点集为P={p1,…,pn};源点集为P’={p1’,…,pn’}。设将目标点集变换到源点集的坐标系下的旋转矩阵为R,平移向量为t。使用最小二乘的方法来求其最优解R*和t*,其求解过程可以分为四步,如下所示:计算两组点的质心位置p,p’:计算每个点的去质心坐标:根据以下优化问题计算旋转矩阵:根据第3步的R*计算t*:...原创 2021-04-20 16:29:51 · 2775 阅读 · 0 评论 -
三维点沿指定向量方向到平面的距离计算方法及C++代码实现
设平面外一点为P(p1,p2,p3),指定的方向向量为d=(d1,d2,d3),平面Q方程为Ax+By+Cz=D,其法向量为n=(A,B,C)。则计算点P沿方向向量d到平面Q的距离,可以通过下式计算 (P+t* d)* n=D [1] 其中t为待求的常数。下面将[1]式分两个步骤解释一下该式子的意义(理解了以后其实就很简单): P’ = P+t* d [2] P’ * n=D [3] [2]式表示三维点P沿着方向向量d移动t倍距离,到达点P原创 2020-12-29 21:38:21 · 3252 阅读 · 0 评论 -
向量法计算三维点到平面的距离公式及C++代码实现
点到平面距离公式推导如下图所示,详细信息参见百度百科:https://baike.baidu.com/item/%E7%82%B9%E5%88%B0%E5%B9%B3%E9%9D%A2%E8%B7%9D%E7%A6%BB/10690055?fr=aladdin 该计算方法在C++中的实现代码如下:原创 2020-12-29 21:48:42 · 5215 阅读 · 0 评论 -
叉积(向量积、外积)的运算法则及其与点积(数量积、内积)的混合运算
设a, b, c为R3上的三个向量,λ, μ为两个标量,×表示两向量之间的向量积,·表示两向量之间的数量积。则: 1. 向量积的定义 a与b的向量积为一向量,记为a×b。记a与b之间的夹角为θ,则它的模与方向分别为:模:|a×b| = |a||b|sinθ方向:垂直于a与b所构成的平面,且满足右手法则2. 向量积的代数规则反交换律:a×b = -b×a。分配律:a×(b+c) = a×b+a×c。与标量乘法兼容:(λa)×b = a×(λb) = λ(a×b)。数乘结合律:原创 2021-09-21 11:08:02 · 47514 阅读 · 1 评论 -
摄像机矩阵P的性质小结
摄像机矩阵P是将三维世界点投影到二维像素平面的转换矩阵,它有多种表达方式,比如P=K[R|t],P=KR[I |-C]等,不管用什么方式进行表达,其均为相机内参K与外参的乘积矩阵。因此,相机矩阵P有很多特性,在《计算机视觉中的多视图几何》一书中就有对摄像机矩阵性质的总结,如下图所示:...原创 2020-12-13 03:21:17 · 1535 阅读 · 0 评论 -
奇异值分解(SVD)原理及其在降维中的应用
奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解,它是特征分解在任意矩阵上的推广。在机器学习、自然语言处理、信号处理、统计学等领域有重要应用。详情链接:写得超好。...转载 2021-09-19 14:22:56 · 601 阅读 · 0 评论 -
数据的归一化变换
对数据进行归一化变换有两个好处:可以提高数据的精度使算法关于相似变换(缩放、平移)不变。即,无论选择的数据的尺度大小和坐标原点位置是如何的,经过归一化后,其都是一致的。这是因为,归一化步骤通过为测量数据选择有效的标准坐标系,预先消除了坐标变换的影响。 数据归一化在数值计算文献中也被称为预条件处理,它在DLT算法中是实质性的,而非可有可无。数据归一化对于条件数不太好的问题尤为重要,比如多视几何中的基本矩阵和三焦点张量的计算。归一化变换一般包括平移和缩放两个步骤:对点进行平移使其形心位于原点原创 2021-09-19 11:02:22 · 716 阅读 · 0 评论