C++ 如何使用opencv在视频中放置对象

C++ 如何使用opencv在视频中放置对象,c++,opencv,C++,Opencv,好的,我用棋盘图像校准了我的相机。这将校准场景的内部和外部参数。现在我想画一个物体,放在我放棋盘的桌子上。我的问题是,是否需要摄影机的旋转+平移向量来执行此操作?如果是这样的话,在进行校准后,我如何获得这些数据?或者在CalibleCamera函数中是否考虑了这些向量 基本上,在我校准相机之后,我现在如何在曲面顶部绘制场景 谢谢 CalibleCamera功能为您提供外部(旋转+平移)和内部(相机矩阵K和失真系数) 这允许您将以棋盘坐标系表示的三维点投影到相机获取的图像中,例如使用project

好的,我用棋盘图像校准了我的相机。这将校准场景的内部和外部参数。现在我想画一个物体,放在我放棋盘的桌子上。我的问题是,是否需要摄影机的旋转+平移向量来执行此操作?如果是这样的话,在进行校准后,我如何获得这些数据?或者在CalibleCamera函数中是否考虑了这些向量

基本上,在我校准相机之后,我现在如何在曲面顶部绘制场景


谢谢

CalibleCamera功能为您提供外部(旋转+平移)和内部(相机矩阵K和失真系数)

这允许您将以棋盘坐标系表示的三维点投影到相机获取的图像中,例如使用
projectPoints
函数()。使用此方法,可以通过使用
projectPoints
功能投影三维边,直接将线框对象绘制到图像中

如果要渲染更复杂的对象(例如,包括纹理等),则需要使用辅助渲染引擎,因为OpenCV不提供此类功能。您必须使用渲染引擎(如OpenGL),向其提供投影细节,在缓冲区中检索从摄影机视点渲染的对象,并将该缓冲区覆盖在初始图像的顶部


但是,请注意,这一结果(称为增强现实)有时可能看起来很奇怪,因为它没有考虑渲染对象和图像中观察到的场景之间的遮挡。。。适当处理遮挡需要场景的3D模型。

CalibleCamera功能为您提供外部(旋转+平移)和内部(摄影机矩阵K和失真系数)

这允许您将以棋盘坐标系表示的三维点投影到相机获取的图像中,例如使用
projectPoints
函数()。使用此方法,可以通过使用
projectPoints
功能投影三维边,直接将线框对象绘制到图像中

如果要渲染更复杂的对象(例如,包括纹理等),则需要使用辅助渲染引擎,因为OpenCV不提供此类功能。您必须使用渲染引擎(如OpenGL),向其提供投影细节,在缓冲区中检索从摄影机视点渲染的对象,并将该缓冲区覆盖在初始图像的顶部

但是,请注意,这一结果(称为增强现实)有时可能看起来很奇怪,因为它没有考虑渲染对象和图像中观察到的场景之间的遮挡。。。适当地处理遮挡需要场景的3D模型。

是一个很好的答案

如果我能加上我的2美分,这是我处理过的一个问题,也是增强现实的基本问题,更一般地说是关于如何集成OpenCV和OpenGL(因为你将使用OpenGL绘制3d素材,并使用OpenGL纹理显示视频中带下划线的OpenCV图像)。你可以在我的网站上找到一些好的链接、文档、教程和参考资料。

是一个很好的答案

如果我能加上我的2美分,这是我处理过的一个问题,也是增强现实的基本问题,更一般地说是关于如何集成OpenCV和OpenGL(因为你将使用OpenGL绘制3d素材,并使用OpenGL纹理显示视频中带下划线的OpenCV图像)。你可以在我的网站上找到一些好的链接、文档、教程和参考资料