问题标签 [projective-geometry]

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 投票
10 回答
17819 浏览

image-processing - 透视变形矩形的比例

给定一张被透视扭曲的矩形的 2d 图片:

在此处输入图像描述

我知道这个形状最初是一个矩形,但我不知道它的原始大小。

如果我知道这张图片中各个角的像素坐标,如何计算出原来的比例,即矩形的商(宽/高)?

(背景:目标是自动去扭曲矩形文档的照片,边缘检测可能会用霍夫变换完成)

更新:

关于是否有可能根据给出的信息确定宽度:高度比,已经进行了一些讨论。我天真的想法是它一定是可能的,因为我想不出办法将例如一个 1:4 的矩形投影到上面描述的四边形上。该比率显然接近 1:1,因此应该有一种数学方法来确定它。然而,除了我的直觉猜测之外,我没有证据证明这一点。

我还没有完全理解下面提出的论点,但我认为必须有一些隐含的假设,即我们在这里遗漏了,并且对此有不同的解释。

但是,经过几个小时的搜索,我终于找到了一些与该问题相关的论文。我正在努力理解那里使用的数学,到目前为止没有成功。特别是第一篇论文似乎准确地讨论了我想要做什么,不幸的是没有代码示例和非常密集的数学。

  • 张正友,何立伟,“白板扫描与图像增强” http://research.microsoft.com/en-us/um/people/zhang/papers/tr03-39.pdf p.11

    “由于透视失真,矩形的图像看起来像是一个四边形。但是,由于我们知道它是空间中的矩形,因此我们能够估计相机的焦距和矩形的纵横比。”

  • ROBERT M. HARALICK “从矩形的透视投影确定相机参数” http://portal.acm.org/citation.cfm?id=87146

    “我们展示了如何使用 3D 空间中未知大小和位置的矩形的 2D 透视投影来确定相对于矩形平面的相机视角参数。”

0 投票
1 回答
861 浏览

computer-vision - 什么是计算机视觉中的射影几何和交叉比?

请外行解释一下。我正在阅读本教程http://lear.inrialpes.fr/people/triggs/pubs/isprs96/node27.html但我无法理解。

0 投票
6 回答
11666 浏览

math - 三点法向量

嘿,数学极客,我有一个问题一直困扰着我一段时间。这是一个个人项目。

我有三个点:红色、绿色和蓝色。它们位于纸板上,红点位于左下角 (0,0),蓝点位于右下角 (1,0),绿点位于左上角。想象一下退后一步,从某个角度为卡片拍照。如果您要找到图片中每个点的中心(假设单位是像素),您将如何找到图片中卡片脸部的法线向量(相对于相机)?

现在我对这个问题有几点看法:

  1. 这些点(在“现实生活”中)总是成直角。在图片中,只有当相机沿着“轴”(轴是由红色和蓝色或红色和绿色点创建的线)围绕红点旋转时,它们才处于直角。
  2. 卡片只有一侧有点。因此,您知道您永远不会看到它的背面。
  3. 卡到相机的距离无关紧要。如果我知道每个点的深度,这会容易得多(只是一个简单的叉积,不是吗?)。
  4. 卡片的轮换与我要查找的内容无关。在我一直在努力解决这个问题的过程中,最终可以在法线向量的帮助下找到旋转。我不知道旋转是否是寻找法线向量的一部分(或产物)。

希望那里有人做到这一点,或者是一个数学天才。我有两个朋友在这里帮助我,我们 - 到目前为止 - 没有成功。

0 投票
1 回答
5599 浏览

math - 如何在 3d 空间中的平面上投影平面多边形

我想将我的多边形沿矢量投影到 3d 空间中的平面。我最好使用单个转换矩阵来执行此操作,但我不知道如何构建这种矩阵。

给定

  • 平面的参数(ax+by+cz+d),
  • 我的多边形的世界坐标。如标题所述,我的多边形的所有顶点都位于另一个平面上。
  • 投影多边形的方向向量(当前是多边形平面的法线向量)

目标 - 执行所需投影的 4x4 变换矩阵,

或者

  • 关于如何自己构建一个的一些见解

更新

感谢您的回答,它按预期工作。

给发现这个的人一个警告:如果投影平面的法线平行于投影向量,则分母 D 将(几乎)变为 0,因此为避免发生奇怪的事情,对这种特殊情况进行某种处理是需要的。我通过检查是否 D < 1e-5 来解决它,如果是这样,只需沿 hte 挤压矢量平移我的多边形。

0 投票
0 回答
1634 浏览

projective-geometry - 投影矩阵+世界平面~>从图像平面到世界平面的单应性

我想我已经把我的线穿过了,这应该很容易。

我有一个从世界坐标到图像坐标的投影矩阵(4D 同质到 3D 同质),因此我也有从图像坐标到世界“光线”的逆投影矩阵。

我想将图像的点投影回世界中的一个平面(这当然是作为 4D 齐次向量给出的)。所需的单应性应该是唯一标识的,但我不知道如何计算它。

当然,我也可以将反投影光线与世界平面相交,但这似乎不是一个好方法,因为我知道必须有一个单应性为我做这件事。

在此先感谢,本

0 投票
1 回答
992 浏览

algorithm - 有没有解决这种投影重建几何问题的算法?

我们有一个带有红色方块的网格。这意味着我们有一个由 3 个正方形组成的数组(角度 == 90 度),据我们所知,它们具有相同的大小,位于同一平面上并且相对于它们所在的平面具有相同的旋转,并且不在同一条线上飞机。

我们有一个空间投影,其中包含带有正方形的平面。

我是 1

我们想用正方形转动我们的平面投影,这样我们就可以看到它正对着我们,一般来说,我们需要一个公式来转动原始平面投影的每个点,以便它像下图一样面向我们。

可以使用哪些公式来解决此类问题,如何解决,有人遇到过这样的事情吗?

我是 2

0 投票
1 回答
1180 浏览

algorithm - 如何获得图像平面相对于世界平面的旋转角度?

所以我们有这样的情况:

替代文字

在此图中,第一个四边形显示在图像平面上,第二个四边形显示在世界平面上。[ 1 ]

在我的特殊情况下,图像平面有 3 个四边形 - 现实世界正方形的投影,正如我们所知,它们具有相同的大小,位于同一平面上,相对于它们所在的平面具有相同的旋转,并且不位于飞机上的同一条线。

替代文字

我想知道我们是否可以在知道所描述的东西的情况下获得图像平面到世界平面的旋转角度?

在我的情况下,作为输入,我有这样的数据结构:原始图像(RGB 像素)、对象(正方形),在图像平面上以像素(x,y)为单位的角度点。

0 投票
1 回答
472 浏览

geometry - 给定平面的法向量和相机的观察方向,校正平面结构的透视图

我在多个视点下拍摄了建筑物正面的图像。然后我使用 bundler 重建建筑物的 3D 点云。然后我使用RANSAC方法在点云中找到立面的平面。

这给了我平面及其表面法线的参数。

从捆绑器中,我还获得了相机旋转矩阵,我用它来计算相机的观察方向。

现在鉴于我有平面的法线和相机的观察方向,我想用它来校正图像,即好像用相机的观察方向拍摄的图像与平面的法线相同。

如何从这两个向量计算投影变换矩阵?

0 投票
1 回答
2242 浏览

graphics - 如何将由 4 个点标识的任意平面投影到二维平面上?

我们试图解决的问题是在平面的两种不同表示中定位一个点。我们拥有的第一个平面被旋转以创建透视图;第二个是同一平面的二维视图。我们在每个我们知道是等效的计划上都有 4 分。问题是如果我们在平面 1 中有一个任意点,我们如何找到平面 2 中的对应点?

最好可能说明用例,以便最好地阐明问题。我们在左侧有一张图片。

投影平面

替代文字

空间二维布局图

替代文字

因此,我们拥有的是两张图片中的红色方块。请注意,如果可能的话,我希望二维空间不一定是正方形。这些都可以提前提供给我们并且是已知的。在第一张图片中,我还在飞机上布置了绿点。我希望能够将图像 1 中的点投影到图像 2 中的空间上。

还要注意图像 1 我没有定义的窗口或眼睛位置。我只知道图像 1 中的红色正方形是红色正方形图像 2 的变换,并且图像 2 在 2D 空间中。

0 投票
2 回答
3708 浏览

c++ - 如何计算纵横角

我有很多 3D 平面。我需要知道的是计算纵横角的方式。我希望,我可以通过使用每个平面的投影法向量(我的平面方程是 ax+by-z+c=0;所以这个平面的法向量是 a,b,-1)到 XY 来计算纵横角飞机。然后,我可以从 Y 轴计算纵横角。但是,在投影到 XY 平面后,我不知道如何获得投影的法线向量。然后,我可以应用给出两个向量之间角度的方程来计算我想要的向量与 y 轴的角度。

另一方面,我发现,纵横角定义为沿平面最陡坡度的任何线与北方向(此处为 Y 轴)之间的角度。这个定义是否会遵循我提出的采用法线向量的方法?我的意思是,投影法线向量是否总是沿着平面的最陡坡给出?另外,有人告诉我,这个问题应该被视为二维问题。请评论我并将相关公式发送给我以计算纵横角。谢谢你。