相关疑难解决方法(0)

从两个Kinect深度图中提取投影单应性

从Kinect深度图获得两个连续的3D点云1和2(不是整个云,比如用OpenCV的GoodFeaturesToMatch从云中选择的100个点),我想从1到2计算摄像机的单应性.我理解这是一个投影变换,它已经由很多人完成了:这里(幻灯片12),这里(幻灯片30)和这里似乎是经典论文.我的问题是,虽然我是一名称职的程序员,但我没有数学或触发技巧将其中一种方法转化为代码.由于这不是一个简单的问题,我为解决以下问题的代码提供了大量的赏金:

相机位于原点,沿Z方向看,不规则的五面体[A,B,C,D,E,F]: 相机位置1

相机向左移动-90mm(X),向上移动60mm(Y),向前移动+ 50mm(Z)并向下旋转5°,向右旋转10°,逆时针旋转-3°: 相机位置2

旋转整个场景以使相机返回其原始位置允许我在2处确定顶点的位置: 在此输入图像描述

用于准备它的3DS Max文件是最大1,最大2和最大3

以下是顶点之前和之后的位置,内在函数等: 顶点和内在函数

请注意,camera2的顶点不是100%准确,有一些故意的噪音.

这是Excel文件中的数字

我需要的代码,必须可以很容易地翻译成VB.Net或C#,必要时使用EMGUCV和OpenCV,获取2组顶点和内在函数并生成此输出:

Camera 2 is at -90 X, +60 Y, +50 Z rotated -5 Y, 10 X, -3 Z.
The homography matrix to translate points in A to B is:
a1, a2, a3
b1, b2, b3
c1, c2, c3
Run Code Online (Sandbox Code Playgroud)

我不知道单应性坐标的单应性是3X3还是3X4,但它必须允许我将顶点从1转换为2.

我也不知道值a1,a2等; 那是你必须找到的; ;-)

500赏金提供'替换'我提供给这个非常相似的问题的赏金,我在那里添加了一个指向这个问题的评论.

编辑2:我想知道我问这个问题的方式是否具有误导性.在我看来,问题更多的是点云拟合而不是相机几何(如果你知道如何平移和旋转A到B,你知道相机变换,反之亦然).如果是这样,那么也许可以用Kabsch的算法或类似的方法获得解决方案

homography projective-geometry kinect

15
推荐指数
1
解决办法
3513
查看次数

从Homography矩阵计算尺度,旋转和平移

我正在尝试计算视频的两个连续帧之间的缩放,旋转和平移.所以基本上我匹配关键点然后使用opencv函数findHomography()来计算单应矩阵.
homography = findHomography(feature1 , feature2 , CV_RANSAC); //feature1 and feature2 are matched keypoints

我的问题是:我如何使用此矩阵来计算比例,旋转和平移?
任何人都可以提供代码或解释如何做到这一点?

c++ video opencv matrix homography

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

使用 OpenCV 的视觉里程计

我正在尝试在 OpenCV Python 中实现单目(单相机)视觉里程计。维基百科在这里给出了常用的方法步骤http://en.wikipedia.org/wiki/Visual_odometry 我使用 Lucas Kanade 跟踪器计算了光流。代码在这里给出http://docs.opencv.org/trunk/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html Wiki上的步骤4说“检查流场向量是否存在潜在的跟踪错误并删除异常值”。我如何在 OpenCV (python) 中执行此操作?我应该使用什么算法/函数?那么第 5 步和第 6 步呢?我在某处读到(请参阅第三条评论http://opencv-users.1802565.n2.nabble.com/optical-flow-with-kalman-filter-td6578617.html)如果卢卡斯·卡纳德(Lucas Kanade)卡尔曼滤波器不会在性能上提供任何改进用来。

python opencv

5
推荐指数
1
解决办法
8834
查看次数

标签 统计

homography ×2

opencv ×2

c++ ×1

kinect ×1

matrix ×1

projective-geometry ×1

python ×1

video ×1