问题标签 [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 回答
3755 浏览

opencv - 如何正确使用单应矩阵?

所以我有一个图像和一个全景图像。使用 Homography 矩阵将来自image1的像素映射到全景图(对吗?)。我有单应矩阵H

那么,对于全景图中的每个像素,我怎么知道像素在image1哪里?

我有全景图中像素的 (u,v) 坐标,这是一个H将 image1 映射到全景图的 Homography。

公式是什么?

0 投票
2 回答
1150 浏览

image - 用于检测图像中对象的快速算法

我正在开发一个用于光学标记识别的小程序。扫描表格的处理包括两个步骤: 1)在扫描的图像中找到表格,去除和裁剪边框。2)使用这种“标准化”形式,我可以使用原始文档中的坐标等简单地搜索标记。

第一步,我目前正在使用 OpenCV 中的 Homography 函数和透视变换来映射点。我还尝试了 SurfDetector。

但是,这两种算法都很慢,并且在从文档扫描仪扫描表格时并不能真正满足速度要求。

谁能指出我针对这个特定问题的替代算法/解决方案?

提前致谢!

0 投票
2 回答
2053 浏览

opencv - cvPerspectiveTransform:我应该提供什么?

我正在尝试使用cvPerspectiveTransform来转换四个 2D 点。我已经通过cvFindHomography. 我无法弄清楚要提供什么样的结构才不会遇到一些错误。有人会这么好心地告诉我如何处理这些问题吗?

  • x:y
  • 0:0
  • 640:0
  • 0:480
  • 640:480

我在 Win 上使用 OpenCV 2.4.0。

0 投票
4 回答
3626 浏览

camera-calibration - 相机单应性

我正在学习相机矩阵的东西。我已经知道我可以通过在对象空间的平面上使用四个点来获得相机的单应性(3*3 矩阵)。我想知道我们是否可以得到四个点不在平面上的单应性?如果是,我怎样才能得到矩阵?我应该看哪些公式?

我还将单应性与另一个概念混淆了:如果我想将点从一个坐标转换到另一个坐标系,我只需要知道三个点。那么为什么我们在计算单应性时需要四个点呢?

0 投票
1 回答
2075 浏览

opencv - 平面物体单应性计算和位姿估计

我正在尝试在 OpenCV 中实现我自己的 Homography 和 Pose 估计。假设我有一个方形图像作为模型,我想在相机的输入帧中定位它。我的问题是关于如何准备模型数据来计算 Homography。

我做了以下程序:

1-我在两个图像中提取了 3 个对应的集合。

2-解决P3P问题:

a) 使用相机内在参数对输入点进行归一化:

b) 归一化长度以获得单位向量:

c) 通过求解 p3p 并存储在 a、b 和 c 中找到 u 和相机焦点之间的距离。(v 和 w 相同)

d) 计算 3D 坐标:

3-计算单应性

我的问题出现在这里。我应该如何准备和修改p1_model,p2_model and p3_model以便为 Homography 计算做好准备?

显然 A_Input是具有归一化日期的 3D 矢量,而p1_model以像素为单位的 2D 矢量。

解决问题后剩下的内容如下:

a) 为这两个集合找到中心点。

b) 使用这个公式点产品找到 H

4- 使用 H 和 SVD 找到刚性变换

更多详细信息可在此处此处获得

0 投票
1 回答
882 浏览

opencv - 查找三对 2D/2D 通信者的 Homography

我在一张图像中有三个特征点,在另一张图像中有它们的匹配项。

我的问题是如何找到将这些匹配相互关联的单应性?我知道我应该解决 P3P 问题。但我不知道为此目的究竟如何规范化点集。解决 P3P 后,我应该如何获得 Homography 矩阵。

假设我的相机内在参数是已知的。之后,我想计算 6DOF 刚性变换并将图像 1 中的每个任意点映射到图像 2。

值得一提的是,我不想使用像 cv::findHomography() 这样的 OpenCV 原生函数

如果您回答清楚完整,我将不胜感激。因为我按照此处此处的说明进行操作,但没有得到正确的解决方案。

0 投票
1 回答
1076 浏览

opencv - 使用 openCV 进行成像拼接 - 最后阶段的难度

我正在使用 OpenCV 2.4 将视频转换为长(窄)马赛克。这是我第一次使用 OpenCV,但到目前为止,我已经成功地管理了以下内容:

  1. 从视频中获取帧。
  2. 使用 SIFT 获取关键点描述符。
  3. 使用 RANSAC 对异常值进行排序
  4. 求单应矩阵。

问题是当我将单应矩阵应用于其中一个帧/图像并尝试生成马赛克时。有时我收到一个错误,抱怨 warpPerspective() 的目标矩阵的大小太小。为了解决这个问题,我猜测尺寸过大以确保结果适合。但是,在将帧副本连接在一起后,我有一个大部分是黑色的巨大图像。所以我的问题是,我怎样才能以一种聪明的方式做到这一点?在将马赛克传递给 warpPerspective() 之前,如何计算我需要的目标矩阵的大小?我一直在尝试使用 ROI/Rect,但我不确定我在做什么。

如果您有任何建议,我将永远感激不尽。

0 投票
3 回答
5443 浏览

java - 如何在 Java 中检测图像中的四边形?

我想在 Java 中检测图像中的四边形。我可以使用 OpenCV 中的 HoughLinesP 方法(使用 javaCV 进行 opencv java 绑定)来检测线段。但我不知道如何检测四边形 - 是否有另一种方法或某种使用霍夫线的方法?此外,一旦检测到四边形的角,我希望它像此类一样返回一个矩形 - http://www.aforgenet.com/framework/docs/html/7039a71d-a87d-47ef-7907-ad873118e374.htm - openCV中是否有等效的库?

0 投票
1 回答
1156 浏览

c++ - cv::findHomography gioving error c2665

I looked at this code which gives http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

So naturally I wanted to load data into findHomography the same way. So my code reads

But its giving me

1>c:\main.cpp(65): error C2665: 'cv::findHomography' : none of the 2 overloads could convert all the argument types 1> c:\opencv\build\include\opencv2\calib3d\calib3d.hpp(423): could be 'cv::Mat cv::findHomography(cv::InputArray,cv::InputArray,int,double,cv::OutputArray)' 1> c:\opencv\build\include\opencv2\calib3d\calib3d.hpp(428): or 'cv::Mat cv::findHomography(cv::InputArray,cv::InputArray,cv::OutputArray,int,double)' 1> while trying to match the argument list '(overloaded-function, overloaded-function, int)' 1> 1>Build FAILED.

It works if I use CV::Mat instead of Vectors but I don't understand why the same format as in the sample shouldn't want to work.

0 投票
2 回答
649 浏览

opencv - 如何使用 Homography?

我正在开发一个程序,我收到两张相同场景的图片,但其中一张有失真:

我想评估失真的模式并能够补偿它

我已经能够找到关键点,我想知道我是否可以为此使用函数 cv::findHomography ...无论如何,该怎么做?