python中cv2.projectPoints的用法小结

 更新时间:2023年12月04日 10:59:22   作者:FourierTransformer  
这篇文章主要介绍了python中cv2.projectPoints的用法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

我们先看一下c++ 中的参数解释

在这里插入图片描述

第一个输入的点是一个, (N, 3) 维的 三维坐标系中的点, xyz
第二个是旋转向量,
第三个是平移向量.
第四个是相机内参,
第五个是相机的畸变系数, 如果输入是4个时, 就是[k1, k2, p1, p2], 输入5个时就是 [k1, k2, p1, p2, k3], 也可以是更多, [k1, k2, p1, p2, k3, k4, k5, k6]

实战在python里面, 我用lidar的点往图像上投影的时候是这么用的(lidar上的3d框, 即8个点.)

    rotation = lidar2camera_pose[:3, :3]
    translation = lidar2camera_pose[:3, 3]
    dist = np.array(camera_disinfo)
    imagePoints, _ = cv2.projectPoints(lidar_points, rotation, translation, camera_K, dist)
    imagePoints = np.reshape(imagePoints, (8, 2))
    maxrect = cv2.boundingRect(imagePoints.astype(int))

但是这样做无法把相机后面的点给排除掉, 所以可以这样改

 lidar_points = np.dot(lidar2camera_pose[:3, :3], lidar_points.T).T + lidar2camera_pose[:3, [3]].reshape(1, 3)
    lidar_points = lidar_points[lidar_points[:, 2]>0]
    if len(lidar_points) < 8:
        return None
    rotation = np.eye(3)
    translation = np.zeros((3, 1))
    dist = np.array(camera_disinfo)
    imagePoints, flag = cv2.projectPoints(lidar_points, rotation, translation, camera_K, dist)
    imagePoints = np.reshape(imagePoints, (8, 2))
    maxrect = cv2.boundingRect(imagePoints.astype(int))

到此这篇关于python中cv2.projectPoints的用法的文章就介绍到这了,更多相关python cv2.projectPoints用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python是否适合网页编程详解

    python是否适合网页编程详解

    在本篇文章里我们给各位整理了一篇关于python是否适合网页编程详解内容,有需要的朋友们可以学习下。
    2019-10-10
  • 利用Tkinter(python3.6)实现一个简单计算器

    利用Tkinter(python3.6)实现一个简单计算器

    这篇文章主要给大家介绍了关于利用Tkinter(python3.6)实现一个简单计算器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • Python中的asyncio性能分析

    Python中的asyncio性能分析

    这篇文章主要介绍了Python中的asyncio性能分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • pandas读取Excel批量转换时间戳的实践

    pandas读取Excel批量转换时间戳的实践

    本文主要介绍了pandas读取Excel批量转换时间戳的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python中的shutil标准库用法解析

    Python中的shutil标准库用法解析

    这篇文章主要介绍了Python中的shutil标准库用法解析,shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能,需要的朋友可以参考下
    2023-09-09
  • Python 依赖库太多了该如何管理

    Python 依赖库太多了该如何管理

    在 Python 的项目中,如何管理所用的全部依赖库呢?最主流的做法是维护一份“requirements.txt”,记录下依赖库的名字及其版本号,需要的朋友可以参考下
    2019-11-11
  • Pandas DataFrame操作数据增删查改

    Pandas DataFrame操作数据增删查改

    我们在用 pandas 处理数据的时候,经常会遇到用其中一列数据替换另一列数据的场景。这一类的需求估计很多人都遇到,当然还有其它更复杂的。解决这类需求的办法有很多,这里我们来推荐几个,这篇文章主要介绍了Pandas DataFrame操作数据的增删查改
    2022-10-10
  • Python实现隐马尔可夫模型的前向后向算法的示例代码

    Python实现隐马尔可夫模型的前向后向算法的示例代码

    这篇文章主要介绍了Python实现隐马尔可夫模型的前向后向算法,本文通过实例代码给大家讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 浅析python继承与多重继承

    浅析python继承与多重继承

    在本篇文章中我们给大家分析了python继承与多重继承的相关知识点内容,有兴趣的读者们参考下。
    2018-09-09
  • python绘制直方图的方法

    python绘制直方图的方法

    这篇文章主要为大家详细介绍了python绘制直方图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论