我需要找到单应性矩阵,它将2d图像坐标转换为真实世界坐标(2D)。我得到的是一面墙的图像和墙上三个不重叠的三角形。The length of each side of the triangle is 1 meter (在墙上),我也知道图像中三角形的所有角落位置。如何使用这些三角形信息计算homography矩阵?
如果我假设三角形的左下角在墙上是(0,0),那么我可以在此基础上找到三角形的其他2个坐标(3个已知坐标),我如何使用其他三角形的信息来找到单应性矩阵。
我已经尝试了几天了,但我想出的解决方案都没有奏效。我想你们这些聪明人可以帮我一把!提前感谢您:)
我需要在C中存储数百个三角形的坐标,每个三角形有三个点,每个点都有自己的(x,y,z)坐标。然而,这是一件痛苦的事情,必须用C语言完成--我就是想不出一种方法(更不用说最好的方法了)来这样做。
在创建' list‘之后,必须能够通过删除三角形的数据或向列表中添加新数据来修改’list‘。三角形没有必要按任何特定的顺序排列。
例如:
triangle 1 ----> point 1 ----> x
y
我知道三角形中两个顶点的两个坐标(不对齐轴),我试图计算第三个顶点的坐标。
a
B ------- C
\ |
\ |
C' \ |
c \ | b
\ |
\ |
\|
A
我知道A和B的坐标,a和c的长度,并且角C<code>E 210</code>永远是直角。我相信对于C的坐标只能有两种可能的解决方案;一种是上面画的,另一种是用C反映的关于c
我正在实现在上提出的Bowyer算法.在我的实现中,直到伪代码的最后一部分,一切都像我所期望的那样工作:
for each triangle in triangulation // done inserting points, now clean up
if triangle contains a vertex from original super-triangle
remove triangle from triangulation
如果我真的按照这里的伪码,我会在我的Delaunay三角剖分中得到丢失的三角形。
作为一个例子,请考虑下面的图片。我正在进行三角测量