Python+OpenCV:姿态估计(Pose Estimation)

####################################################################################################
# 姿态估计(Pose Estimation)
def lmc_cv_pose_estimation(method):"""函数功能: 姿态估计(Pose Estimation)。"""# Load previously saved datawith np.load('Calibration parameters.npz') as X:camera_matrix, dist_coeffs, rvecs, tvecs = [X[i] for i in ('mtx', 'dist', 'rvecs', 'tvecs')]# 终止条件(termination criteria)criteria = (lmc_cv.TERM_CRITERIA_EPS + lmc_cv.TERM_CRITERIA_MAX_ITER, 30, 0.001)# prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)objp = np.zeros((6 * 7, 3), np.float32)objp[:, :2] = np.mgrid[0:7, 0:6].T.reshape(-1, 2)# draw a cube or a three-dimensional coordinate axisaxis = []if 0 == method:axis = np.float32([[3, 0, 0], [0, 3, 0], [0, 0, -3]]).reshape(-1, 3)if 1 == method:axis = np.float32([[0, 0, 0], [0, 3, 0], [3, 3, 0], [3, 0, 0],[0, 0, -3], [0, 3, -3], [3, 3, -3], [3, 0, -3]])# 读取所有匹配的图像stacking_images = []corners_image = []gray_image = []images = glob.glob('D:/99-Research/TestData/cv/stereo/case1/left*.png')for image_name in images:image = lmc_cv.imread(image_name, lmc_cv.IMREAD_UNCHANGED)image = lmc_cv.cvtColor(image, lmc_cv.COLOR_BGR2RGB)corners_image = image.copy()gray_image = lmc_cv.cvtColor(image, lmc_cv.COLOR_BGR2GRAY)# Find the chess board cornersret, corners = lmc_cv.findChessboardCorners(gray_image, (7, 6), None)# If found, add object points, image points (after refining them)if ret:# 亚像素角点corners2 = lmc_cv.cornerSubPix(gray_image, corners, (11, 11), (-1, -1), criteria)# Find the rotation and translation vectors.ret, rvecs, tvecs = lmc_cv.solvePnP(objp, corners2, camera_matrix, dist_coeffs)# project 3D points to image planeimgpts, jac = lmc_cv.projectPoints(axis, rvecs, tvecs, camera_matrix, dist_coeffs)# 绘制三维坐标轴corners_image = lmc_cv_draw_3d_coordinate_axis(method, corners_image, corners2, imgpts)# stacking images side-by-sidestacking_image = np.hstack((image, corners_image))stacking_images.append(stacking_image)# 显示图像for i in range(len(stacking_images)):pyplot.figure('Pose Estimation %d' % (i + 1), figsize=(16, 9))# pyplot.subplot(1, 1, 1)pyplot.imshow(stacking_images[i], 'gray')pyplot.title('Pose Estimation')pyplot.xticks([])pyplot.yticks([])pyplot.savefig('%02d.png' % (i + 1))pyplot.show()
####################################################################################################
# 绘制3D轴
def lmc_cv_draw_3d_coordinate_axis(method, image, corners, imgpts):if 0 == method:corners = np.int32(corners)imgpts = np.int32(imgpts)corner = tuple(corners[0].ravel())image = lmc_cv.line(image, corner, tuple(imgpts[0].ravel()), (255, 0, 0), 5)image = lmc_cv.line(image, corner, tuple(imgpts[1].ravel()), (0, 255, 0), 5)image = lmc_cv.line(image, corner, tuple(imgpts[2].ravel()), (0, 0, 255), 5)if 1 == method:imgpts = np.int32(imgpts).reshape(-1, 2)# draw ground floor in greenimage = lmc_cv.drawContours(image, [imgpts[:4]], -1, (0, 255, 0), -3)# draw pillars in blue colorfor i, j in zip(range(4), range(4, 8)):image = lmc_cv.line(image, tuple(imgpts[i]), tuple(imgpts[j]), 255, 3)# draw top layer in red colorimage = lmc_cv.drawContours(image, [imgpts[4:]], -1, (0, 0, 255), 3)return image

Python+OpenCV:姿态估计(Pose Estimation)相关推荐

  1. 3D视觉——3.人体姿态估计(Pose Estimation) 算法对比 即 效果展示——MediaPipe与OpenPose

    上一话 3D视觉--2.人体姿态估计(Pose Estimation)入门--OpenPose含安装.编译.使用(单帧.实时视频)https://blog.csdn.net/XiaoyYidiaodi ...

  2. YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)

    概述 YOLOv7姿态估计:一种快速准确的人体姿态估计模型 ​ 人体姿态估计是计算机视觉中的一项重要任务,具有各种应用,例如动作识别.人机交互和监控.近年来,基于深度学习的方法在人体姿态估计方面取得了 ...

  3. OpenCV注视估计Gaze Estimation的实例(附完整代码)

    OpenCV注视估计Gaze Estimation的实例 OpenCV注视估计Gaze Estimation的实例 OpenCV注视估计Gaze Estimation的实例 #include < ...

  4. 使用Python分析姿态估计数据集COCO的教程

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 当我们训练姿势估计模型,比较常用的数 ...

  5. 自动驾驶 11-3: 根据 LIDAR 数据进行位姿估计 Pose Estimation from LIDAR Data

    既然你已经学会了如何翻译, 旋转和缩放点云, 是时候谈谈我们该如何做 实际使用这些操作 用真实的点云 估计自动驾驶汽车的运动. 我们这样做的方式 一般是通过解决某事 称为点集配准问题, 这是最重要的问 ...

  6. 快速人体姿态估计--Pose Proposal Networks

    Pose Proposal Networks ECCV2018 本文使用 YOLO + bottom-up greedy parsing 进行人体姿态估计 its total runtime usin ...

  7. opencv相机标定和人头姿态估计案例

    前言 头部驱动除了之前关注的表情驱动外,还有眼球驱动和头部方向驱动.本博客基于opencv官方文档和部分开源代码来研究如何基于人脸关键点获取头部的朝向. 国际惯例,参考博客: opencv:Camer ...

  8. Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    目录 1.人体姿态估计简介 2.人体姿态估计数据集 3.OpenPose库 4.实现原理 5.实现神经网络 6.实现代码 1.人体姿态估计简介 人体姿态估计(Human Posture Estimat ...

  9. Human Pose Estimation姿态估计调研

    介绍 姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人 ...

最新文章

  1. crontab 备份mysql数据库_crontab定时备份mySQL数据库
  2. morlet包络检波matlab,布里渊光纤传感系统中的信号处理的研究
  3. 云计算之路-阿里云上:消灭“黑色n秒”第一招——不让CPU空闲
  4. 任务调度之Quartz2
  5. 《剑指offer》和为s的两个数字
  6. Linux关机和重启命令总结
  7. java月历组件_vue之手把手教你写日历组件
  8. Linux下redis的安装及用法
  9. disruptor模拟高速处理大规模订单类业务场景
  10. Photoshop CC 2019多边形形的抠图
  11. python编程基础—正则表达式
  12. mysql 怎样链接jdbc_jdbc链接mysql
  13. 【笔试/面试】—— 数组中第二大的数
  14. JavaScript浏览器对象模型
  15. win10诊断启动后联网_2步打开win10隐藏高级启动,解决80%系统问题
  16. 微信小程序图片布满整个窗口
  17. java 对数运算_使用java计算log值
  18. BDF2各模块依赖关系
  19. 【递归入门】走迷宫(c++)
  20. IED 61850 总体建模原则

热门文章

  1. Golang 25 个保留关键字
  2. Python_study_day_1_while_if
  3. ansible的介绍和一些基本模块介绍
  4. poj3159 Candies
  5. java面试题及答案 JAVA相关基础知识
  6. Ubuntu Server 安装桌面untiy
  7. AD域安装及必要设置
  8. .7 二叉查找树的 建立 insert search remove 操作
  9. 将实例的生成交给子类——工厂方法模式
  10. exit()和_exit()的区别