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用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用anaconda保证64位和32位的python共存

    利用anaconda保证64位和32位的python共存

    这篇文章主要为大家详细介绍了利用anaconda保证64位和32位的python共存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python构造函数属性示例魔法解析

    Python构造函数属性示例魔法解析

    Python构造函数和属性魔法是面向对象编程中的关键概念,它们允许在类定义中执行特定操作,以控制对象的初始化和属性访问,本文将深入学习Python中的构造函数和属性魔法,包括构造函数__init__、属性的@property和@attribute.setter等,以及它们的实际应用
    2023-12-12
  • Python实现的检测web服务器健康状况的小程序

    Python实现的检测web服务器健康状况的小程序

    这篇文章主要介绍了Python实现的检测web服务器健康状况的小程序,本文使用socket库来实现,需要的朋友可以参考下
    2014-09-09
  • 利用python实现可视化大屏

    利用python实现可视化大屏

    这篇文章主要介绍了利用python实现可视化大屏,文章围绕主题展开对如何利用python实现可视化大屏,需要的小伙伴可以参考一下,希望对你的学习和工作有所帮助
    2022-03-03
  • Python网络爬虫之获取网络数据

    Python网络爬虫之获取网络数据

    本文介绍了Python中用于获取网络数据的重要工具之一——Requests库,详细讲解了Requests库的基本使用方法、请求方法、请求头、请求参数、Cookies、Session等内容,并结合实例代码展示了Requests库的应用场景
    2023-04-04
  • 基于Python对数据shape的常见操作详解

    基于Python对数据shape的常见操作详解

    今天小编就为大家分享一篇基于Python对数据shape的常见操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python使用列表推导式快速生成列表

    Python使用列表推导式快速生成列表

    这篇文章主要介绍了Python使用列表推导式快速生成列表,列表推导式是Python构建列表list的一种快捷方式,可以使用简洁的代码就创建出一个列表,需要的朋友可以参考下
    2023-07-07
  • 理解Python中的With语句

    理解Python中的With语句

    这篇文章主要介绍了理解Python中的With语句,本文讲解了With语句是什么、with如何工作等内容,并给出了代码实例,需要的朋友可以参考下
    2015-02-02
  • python实现图像随机裁剪的示例代码

    python实现图像随机裁剪的示例代码

    这篇文章主要介绍了python实现图像随机裁剪的示例代码,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-12-12
  • Python pandas之求和运算和非空值个数统计

    Python pandas之求和运算和非空值个数统计

    数据处理的过程中经常会遇到判断空值和求和运算的需求,所以下面这篇文章主要给大家介绍了关于Python pandas之求和运算和非空值个数统计的相关资料,需要的朋友可以参考下
    2021-08-08

最新评论