标签: triangulation

OpenCV undistortPoints和triangulatePoint给出奇数结果(立体声)

我试图让几个点的三维坐标空间,但我得到来自两个奇怪的结果undistortPoints()triangulatePoints().

由于这两款相机有不同的分辨率,我已经分别校准他们,得到的均方根误差0,340,43,然后用stereoCalibrate()获得更多的矩阵,得到的RMS 0,708,然后用stereoRectify()获得的剩余矩阵.有了这个,我已经开始了收集坐标的工作,但我得到了奇怪的结果.

例如,输入是:(935, 262),undistortPoints()输出是(1228.709125, 342.79841)一个点,而另一个是(934, 176)(1227.9016, 292.4686).这很奇怪,因为这两个点都非常接近框架的中间,其中扭曲是最小的.我没想到它会将它们移动300像素.

传递给traingulatePoints()结果时,结果甚至更奇怪 - 我测量了现实生活中三点之间的距离(用尺子),并计算了每张图片上像素之间的距离.因为这次点在一个非常平坦的平面上,这两个长度(像素和实际)匹配,如| AB |/| BC | 两种情况都是4/9左右.但是,triangulatePoints()通过| AB |/| BC |给我带来了结果 是3/2或4/2.

这是我的代码:

double pointsBok[2] = { bokList[j].toFloat()+xBok/2, bokList[j+1].toFloat()+yBok/2 };
cv::Mat imgPointsBokProper = cv::Mat(1,1, CV_64FC2, pointsBok);

double pointsTyl[2] = { tylList[j].toFloat()+xTyl/2, tylList[j+1].toFloat()+yTyl/2 };
//cv::Mat imgPointsTyl = cv::Mat(2,1, CV_64FC1, pointsTyl);
cv::Mat imgPointsTylProper = cv::Mat(1,1, CV_64FC2, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv triangulation

64
推荐指数
1
解决办法
2208
查看次数

高效的Delaunay三角剖分

我正在寻找一个.NET实现,它从一组点构建Delaunay三角剖分.

我已经测试了几个实现,但它们都只适用于少量点(最多20,000个).

我需要能够在合理的时间内处理500,000点的东西.

.net c# delaunay triangulation

38
推荐指数
3
解决办法
3万
查看次数

Wifi三角测量

什么是被动地对无线网络进行三角测量的最佳方法.有工具可用吗?算法?图书馆?

我的目标是创建一个各种对象的相对映射,使用信号强度(DB),信号/噪声比,信号相位等从几个位置点发送或接收信号.通过足够的采样,我猜测可以创建一个好的2d/3d地图.

我正在寻找任何语言/平台的东西.

一些关键词:wi-fi网站调查,可视化,覆盖,位置,定位

考虑使用kismet收集数据然后处理它.也许在2.4Ghz范围内的RF的自由空间路径损耗来计算相对距离.并且可选地尝试使用RF障碍物衰减估计值(基于一些用户输入)来给出更好的估计.然后使用三边测量来生成可能的相对坐标.

mapping wireless map triangulation wifi

31
推荐指数
2
解决办法
3万
查看次数

如何正确使用cv :: triangulatePoints()

我试图用OpenCV对一些点进行三角测量,我发现了这个cv::triangulatePoints()功能.问题是几乎没有文档或示例.

我有一些疑问.

  1. 它使用什么方法? 我对三角测量进行了一些小的研究,有几种方法(线性,线性LS,本征,迭代LS,迭代本征......)但我找不到它在OpenCV中使用的方法.

  2. 我该怎么用?似乎作为输入它需要投影矩阵和3xN齐次2D点.我将它们定义为std::vector<cv::Point3d> pnts,但作为输出它需要4xN数组,显然我不能创建一个std::vector<cv::Point4d>因为它不存在,所以我应该如何定义输出向量?

对于我尝试的第二个问题:cv::Mat pnts3D(4,N,CV_64F);并且cv::Mat pnts3d;,似乎都不起作用(它抛出异常).

c++ opencv triangulation

31
推荐指数
3
解决办法
4万
查看次数

带孔的多边形三角剖分

我正在寻找一个算法或库(更好)将多边形分解为三角形.我将在Direct3D应用程序中使用这些三角形.什么是最好的选择?

这是我到目前为止所发现的:

  1. Ben Discoe的笔记
  2. FIST:多边形的快速工业强度三角剖分
  3. 我知道CGAL提供了三角测量,但我不确定它是否支持漏洞.

我非常感谢有此领域经验的人的一些意见.

编辑:这是一个2D多边形.

graphics geometry direct3d triangulation cgal

27
推荐指数
4
解决办法
4万
查看次数

Android位置权限

在我的Android应用程序中,我愿意使用GPS位置.

  1. 为了使用GPS位置,我应该在android清单文件中包含哪些主要权限.
  2. 如果GPS信号强度丢失,有没有办法使用移动网络对位置进行三角测量.

谢谢!

gps android triangulation android-permissions

24
推荐指数
2
解决办法
7万
查看次数

OpenCV triangulatePoints用手

我有两个严格并排连接的摄像机,朝向平行方向.

摄像头的 投影矩阵左摄像头的投影矩阵

适用于相机的投影矩阵适用于右相机的投影矩阵

当我triangulatePoints对相应点的两个向量执行时,我得到了3D空间中的点集合.3D空间中的所有点都具有负Z坐标.

所以,要深究这个......

我的假设是OpenCV使用右手坐标系.

用户提醒: 用手提醒

我假设每个摄像机的初始方向指向正Z轴方向.

因此,通过使用像我在开头提出的那些投影矩阵,我会假设摄像机位于空间中,如下所示:

我怎么想象相机在太空中定位和定向

这个假设与我观察到的负数Z corrdinates的交错点时的观察结果相冲突.我能想到的唯一解释是OpenCV实际上使用左手坐标系.因此,对于我在开头所述的投影矩阵,这就是摄像机在太空中的定位方式:

左手坐标系中的摄像头

这表明我的左侧相机在这种情况下不在左侧.这就是为什么我得分为负的深度.

而且,如果我尝试triangulatePointssolvePnP我结合遇到问题.

我使用输出triangulatePoints作为输入solvePnP.我希望相机坐标靠近3D坐标系的原点.我希望计算出的相机位置与开头使用的投影矩阵相匹配.但这不会发生.我得到了一些完全狂野的结果,错过了预期值超过基线长度的10倍.

此示例比上述内容更完整地表示问题.

points3D 在此输入图像描述

以下是生成这些点的代码.

移动,设置相机A和相机D ...

Mat cameraMatrix = (Mat_<double>(3, 3) <<
    716.731, 0, 660.749,
    0, 716.731, 360.754,
    0, 0, 1);
Mat distCoeffs = (Mat_<double>(5, 1) << 0, 0, 0, 0, 0);



Mat rotation_a = Mat::eye(3, 3, CV_64F); // no rotation
Mat …
Run Code Online (Sandbox Code Playgroud)

c++ opencv triangulation

24
推荐指数
1
解决办法
3135
查看次数

寻找三角形切片的最近邻居

我有一个像图中所示的三角形镶嵌.在此输入图像描述

给定N曲面细分中的三角形数量,我有一个N X 3 X 3数组存储(x, y, z)每个三角形的所有三个顶点的坐标.我的目标是为每个三角形找到共享相同边缘的相邻三角形.这是一个错综复杂的部分是我不重复邻居计数的整个设置.也就是说,如果三角形j已被计为三角形的邻居i,则三角形i不应再次计为三角形的邻居j.这样,我想有一个地图存储每个索引三角形的邻居列表.如果我从索引中的三角形开始i,那么索引i将有三个邻居,而所有其他的将有两个或更少.举个例子,假设我有一个存储三角形顶点的数组:

import numpy as np
vertices = np.array([[[2.0, 1.0, 3.0],[3.0, 1.0, 2.0],[1.2, 2.5, -2.0]],
                     [[3.0, 1.0, 2.0],[1.0, 2.0, 3.0],[1.2, -2.5, -2.0]],
                     [[1.0, 2.0, 3.0],[2.0, 1.0, 3.0],[3.0, 1.0, 2.0]],
                     [[1.0, 2.0, 3.0],[2.0, 1.0, 3.0],[2.2, 2.0, 1.0]],
                     [[1.0, 2.0, 3.0],[2.2, 2.0, 1.0],[4.0, 1.0, 0.0]],
                     [[2.0, 1.0, 3.0],[2.2, 2.0, 1.0],[-4.0, 1.0, 0.0]]])
Run Code Online (Sandbox Code Playgroud)

假设我从顶点索引开始计数2,即具有顶点的那个[[1.0, 2.0, 3.0],[2.0, …

python performance triangulation graph-algorithm numba

23
推荐指数
4
解决办法
910
查看次数

三角测量和定位点(x,y,z)

我想找到一个位于空间某处的未知节点的坐标,该节点的参考距离远离3个或更多节点,它们都具有已知的坐标.

这个问题是完全一样三边这里描述三边测量.

但是,我不理解关于"初步和最终计算"的部分(参考维基百科网站).我找不到P1,P2和P3的地方,所以我可以把它放到那些方程式?

谢谢

algorithm geometry localization triangulation trilateration

22
推荐指数
1
解决办法
3万
查看次数

轻量级Delaunay三角化库(适用于c ++)

我想玩一些(2D)Delaunay三角测量,我正在寻找一个相当小的库来工作.我知道CGAL,但我想知道是否有一些相当简单和直接的东西.

我想做的事情:

  • 创建任意点集的三角剖分
  • 找到任意点所在的三角形,并获取顶点
  • 创建三角测量的图像(可选)

建议?

c++ geometry triangulation cgal

21
推荐指数
1
解决办法
2万
查看次数