python - 使用openCV提取带有固定相机的运动球体的X、Y、Z位置
问题描述
我是opencv的新手,我想在我的项目中应用姿势估计。基本上,我想做的是提取球体的 X、Y、Z 位置。检测球体的相机位于固定位置,而球体相对于世界参考系在空间中移动。
我知道您必须先进行相机校准才能提取此处讨论的内在和外在参数:youtube.com/watch?v=HoBKG82A9xs
我在这里找到了一个很好的参考资料,它实际上解释了我想在我的项目中做什么: https ://www.fdxlabs.com/calculate-xyz-real-world-coordinates-from-a-single-camera-using-opencv / 但是,z 位置是固定的,并且在这个项目中是已知的。此外,项目中的透视校准是在一个固定的平面上完成的。这意味着检测仅在该特定平面上是准确的。
现在我的问题是我将如何将它应用到在空间中移动的球体中?或者您能建议一种不同的方法来准确提取 X、Y、Z 位置吗?我需要使用两个相机还是一个就可以了?
解决方案
当然,当涉及到 3D 坐标时,可以使用 2 个摄像头进行深度预测。但是,我建议你尝试一件事。由于您正在跟踪一个球体,因此您可以轻松跟踪 X 和 Y 坐标。如果工作环境是固定的,您可以根据球体的面积创建 Z 坐标公式。当您远离相机时,区域将减小,Z 坐标将增加。您可以通过 try-n-error 方法设计公式,如果我将球体移动 1 英尺,将减少多少面积。
如果工作环境发生变化,您可以在使用开始时添加校准阶段。类似于在开始预测之前保持球体为 0 级,将其拉回 1 英尺。将其向前推 1 英尺。
推荐阅读
- java - 如何从我的应用程序服务中退出另一个应用程序(不是我的)但不杀死它
- android - 构建失败并出现异常反应本机
- javascript - 如何找到多个焦点元素
- .htaccess - .htaccess 重定向到新域
- python - 给定python 3.5中模块的完整路径,如何导入模块?
- c++ - uniform_int_distribution <> 和有什么区别
? - javascript - 按键在我为某些聊天应用程序制作的功能中不起作用
- python - 如何打开与 Python 2 和 Python 3 兼容的 Tkinter askopenfilename 对话框
- node.js - 不断收到错误。找不到模块:错误:无法解析“文件路径”中的“@angular/animations”
- java - 为什么使用不同的 ArrayList 构造函数会导致内部数组的增长率不同?