问题标签 [homography]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2408 浏览

computer-vision - 图像校正的单应性

我们可以对立体图像进行图像校正。对于单个图像,我们可以找到两个消失点,然后是消失线。使用这条消失线,我们可以进行射影校正。但是仿射校正需要什么约束?

我基本上想将图像校正为其正面视图,以使世界中的平行线平行且平行于 x 轴。我希望自己清楚..

将图像中的消失点 (x,y) 转移到 (1,0,0) 的单应性是什么???

提前致谢

0 投票
1 回答
2196 浏览

opencv - 如何在冲浪检测中找到 3d 投影矩阵

我是 OpenCV 的新手。我已经让 Surf Detection 样本工作了。现在我想在检测到的图像上放置一个 3d 模型。

如何找到 3d 投影矩阵?

0 投票
1 回答
573 浏览

c++ - 使用冲浪检测器进行对象匹配

我正在尝试使用 SURF 检测器从图像中检测对象。为此,我尝试调试 OpenCV 提供的代码:

但它不断显示运行时错误..

你能告诉我这背后的原因吗?

0 投票
1 回答
2722 浏览

c++ - 规范化时避免奇怪的单应值

熟悉 Homographies 的人会知道,您必须将其除以任何矩阵分量进行归一化,以保持齐次坐标。单应性是一个 3x3 矩阵,它通常被归一化除以 (3,3) 处的元素。

http://www.cg.tu-berlin.de/fileadmin/fg144/Courses/06WS/scanning/Dennis/Extrinsic%20calibration-Dateien/image006.jpg

当该值非常小时(例如 0.0000008)并除以一个假定为零的值(0.0000007)时,问题就出现了。结果值在假定为零时几乎为 0.875,并且结果投影没有意义。

我想知道解决这个问题的常用方法是什么。我使用 C++ 和浮点运算。

0 投票
3 回答
7222 浏览

opencv - 从 OpenCV 中的 findHomography 中检测垃圾单应性?

我正在使用findHomography点列表并将结果发送到warpPerspective.

问题是有时结果是完全垃圾,结果图像由奇怪的灰色矩形表示。

如何检测何时findHomography向我发送不良结果?

0 投票
1 回答
1544 浏览

opencv - 我可以重复使用从 2 个不同相机拍摄的同一场景的 2 个不同图像计算的单应矩阵吗?

我正在尝试学习 OpenCV。我有一个关于单应性和对极几何的问题。

假设我使用 cvFindHomography() 函数计算了单应性,该函数使用两个静态图像的匹配特征点,使用两个相机从两个不同的视点拍摄。

如果我重用单应矩阵从camera2(left)拍摄的图像中检测camera 1(right)中的对应点是错误的吗(因为我知道左图的2d同质特征点在哪里,x' = H.x右图的2d对应同质特征在哪里?点并且是单应矩阵)其中camera1和camera2中的2d点不用于计算单应矩阵?x'xH

我要问的是我可以重用这两个相机的计算单应矩阵来找到任何不用于计算单应矩阵的图像的对应点吗?

当它曾经由固定图像确定时,我使用哪个图像是否重要?还是我每次都需要计算?

0 投票
1 回答
11289 浏览

opencv - 使用 SURF 在检测到的对象周围绘制矩形

我正在尝试从以下涉及冲浪检测器的代码中检测对象,我不想绘制匹配项,我想在检测到的对象周围绘制一个矩形,但不知何故我无法获得正确的 Homography,请任何人指出在哪里我错了。

0 投票
1 回答
8346 浏览

opencv - 如何判断单应矩阵是否可以接受?

当使用 OpenCV 的findHomography函数来估计来自不同图像的两组点之间的单应性时,即使您使用 RANSAC 或 LMEDS,有时也会由于输入点内的异常值而得到错误的单应性。

如何判断生成的 3x3 单应矩阵是否可以接受?

我在 Stackoverflow 和 Google 中寻找了这个问题的答案,但找不到。

我找到了这篇文章,但对我来说有点神秘:

“单应性的几何误差”

0 投票
1 回答
6777 浏览

image - 图像拼接的一些问题——单应性?

我正在使用 Visual Studio 2010 上的 OpenCV 2.3.1 进行图像拼接项目。

我目前有2个问题。

(我的名气不超过10,所以我只能在这个帖子中发布2个超链接。我会在评论区再发布2个)

我按照以下链接 Stitching 2 images in opencv中提到的步骤进行操作

  1. 在两个图像中查找 SURF 特征并匹配它们
  2. 使用 RANSAC 去除异常值
  3. 计算单应性
  4. 将目标图像变形为参考图像

下图是我目前得到的结果:

使用相机在相同位置但在不同方向拍摄两张图像(我使用了三脚架)。

在此处输入图像描述

然后我尝试了另一个测试。这次我仍然使用同一台相机拍摄 2 张​​图像。然而,我将相机从原来的位置移动了一点,然后我拍了第二张照片。结果相当糟糕,如图所示:

在此处输入图像描述

问题1:**这是否意味着**如果两个摄像头在不同的位置,标准的全景拼接技术(基于单应性或摄像头旋转模型)将不起作用?

我尝试拼接在不同位置拍摄的图像,因为将来我想在不同位置的 2 个相机上实现拼接算法,以扩大 FOV,有点像这样:(我会在评论中发布图片,请检查扩大视野

但现在看来我走错路了:(。


我刚刚发现,在算法过程中,特征查找和匹配花费了大部分时间。

问题 2:我可以只计算 2 张图像的某些部分(重叠区域)的特征,并仍然使用 Homography 执行转换吗?即,不计算整个图像。

我之所以这样认为是因为我认为如果我指定 2 个图像之间的重叠区域的数量,则不需要计算整个图像中的特征。如果我可以计算和匹配重叠区域的特征,它应该会大大提高速度。

下面显示的第一个代码是计算整个图像的特征的原始代码。

我做了以下事情来尝试减少运行整个算法所需的时间:

使用上面的代码,计算时间显着减少,同时给出了一个糟糕的结果:(我会在评论中发布图片,请检查Bad Result

目前卡住了,不知道下一步该做什么。真的希望并感谢任何帮助。谢谢。

0 投票
5 回答
23394 浏览

c++ - findHomography、getPerspectiveTransform 和 getAffineTransform

这个问题是关于 OpenCV 函数的findHomographygetPerspectiveTransform&getAffineTransform

  1. findHomography和有什么区别getPerspectiveTransform?我从文档中的理解是,getPerspectiveTransform使用 4 个对应关系(这是计算单应性/透视变换所需的最小值)findHomography计算变换,即使您提供超过 4 个对应关系(大概使用最小二乘法之类的方法? )。这个对吗?(在这种情况下,OpenCV 仍然继续支持 getPerspectiveTransform 的唯一原因应该是遗留的?)

  2. 我的下一个问题是我想知道是否有findHomography计算仿射变换的等价物?即使用最小二乘法或等效稳健方法来计算和仿射变换的函数。根据文档getAffineTransform只接受 3 个对应关系(这是计算仿射变换所需的最小值)。

最好的,