opencv - 在 OpenCV 拼接示例中使用 Homography Matrix 转换数据点
问题描述
我正在使用 OpenCV 拼接示例代码,或者您可以在此处查看此代码的简化版本。我的图像被正确拼接以形成全景图。我想使用相同的单应矩阵或仿射矩阵将一个图像上的单个数据点转换为全景图。数据点与图像分开接收,但该数据点的坐标根据原始图像尺寸。
我可以在opencv2文件夹中的 Matchers.hpp 文件中看到
110 号线CV_PROP_RW Mat H; //!< Estimated transformation
这个 Mat H 是 Homography 矩阵,但我似乎无法找到它在我开始发布的拼接示例中的使用位置和方式。如果我得到此信息,我可以使用它通过使用相同的命令来转换该数据点。如果我的方法是错误的,请告诉我还能做什么。
解决方案
所以我找到了这个问题的答案。首先分别使用拼接后的输出图像和每个输入图像来找出所有输入图像都被转换的单应矩阵。然后使用特定图像的源点的透视变换和相应的单应性来找出目标点。这样,您在一张输入图片中选择作为源点的坐标将转换为拼接输出中的坐标作为目标点。它将是在输入中选择的图片的同一部分。
推荐阅读
- wordpress - Woocommerce 产品数据下拉选项和其他选项未显示
- angular - 如何在 Angular Typescript 中设置 BASE_URL?
- python - 在 Django 中收到没有这样的列错误
- java - JMeter 5.4.1:java.net.SocketException:测试结束时套接字关闭
- javascript - 使用 CSS 和 Javascript 如何启用滚动条,即使使用了指针事件:无;CSS 属性
- sql-server - 替代 STRING_AGG pre SQL Server 2016
- highcharts - 风倒钩:如何显示来自 mysql 的数据系列
- php - 无法使用 rmdir 功能删除文件夹
- c# - 为什么我的 C# HttpWebRequest 在 4 秒后没有超时
- python - 一起使用 Python Arcade 和 Tkinter 会挂起应用程序