opencv:使用旋转和平移向量设置模型位置

本文关键字:向量 设置 模型 位置 旋转 opencv | 更新日期: 2023-09-27 18:28:47

我有一个统一的3D模型。我使用opencv-solvePnP向量计算旋转和平移向量。

现在,我尝试用这些值设置模型位置。我的C#代码如下:

Vector3 objPosition;
objPosition.x = gameObject.transform.position.x + tvec.x;
objPosition.y = gameObject.transform.position.y + tvec.y; 
objPosition.z = gameObject.transform.position.z + tvec.z;
gameObject.transform.position = objPosition;
Quaternion quat = new Quaternion(rvec.x, rvec.y, rvec.z, 1.0f);
gameObject.transform.rotation = quat;

但结果对我来说不是真的。我怎么能把opencv旋转和平移向量统一起来呢?

编辑

我有一个三维模型。我手动确定对象和模型上的对应点。我想把二维图像,其中包含一个已知的对象。我使用solvePnp得到了相机和物体的关系。

我使用,来显示统一场景中的三维模型,opencv旋转和平移矢量。也许我应该改变我的问题。

如何使用3d-2d点对应关系检测对象的位置和方向?

opencv:使用旋转和平移向量设置模型位置

查看Euler到四元数计算的Unity文档

Quaternion quat = Quaternion.Euler(new Vector3(rvec.x, rvec.y, rvec.z))