Python计算机视觉编程 - 第四章 照相机模型与增强现实

本文介绍了如何使用Python进行照相机模型姿态估计和增强现实应用。通过安装PyGame和OpenGL库,实验内容包括基于平面和标记物的姿态估计,以及将三维模型融入真实场景的增强现实效果展示。
摘要由CSDN通过智能技术生成

本次实验我们要实现的是以平面和标记物进行姿态估计和增强现实。

在实现代码之前,我们需要安装两个工具包
1.PyGame,下载网址为 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
2.OpenGL,下载网址为 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl

  • 安装OpenGL根据自己电脑的版本及Python版本选择下载,安装完毕后,留下glut64.vc15.dll这个文件,其他删除。
    一、以平面和标记物进行姿态估计
    如果图像中包含平面状的标记物体,并且以及对照相机进行了标定,那么我们可以计算出照相机的姿态(旋转或平移)。这里的标记物体可以为对任何平坦的物体。
    以下实验是使用平面物体作为标记物,来计算用于新视图投影矩阵的例子。
    代码实现如下:
from pylab import *
from PIL import Image

# If you have PCV installed, these imports should work
from PCV.geometry import homography, camera
from PCV.localdescriptors import sift

"""
This is the augmented reality and pose estimation cube example from Section 4.3.
"""

#创建用于绘制立方体的一个点列表(前5个点是底部的正方形,一些边重合了)
def cube_points(c, wid):
    """ Creates a list of points for plotting
        a cube with plot. (the first 5 points are
        the bottom square, some sides repeated). """
    p = []
    # 底部
    p.append([c[0]-wid, c[1]-wid, c[2]-wid])
    p.append([c[0]-wid, c[1]+wid, c[2]-wid])
    p.append([c[0]+wid, c[1]+wid, c[2]-wid])
    p.append([c[0]+wid, c[1]-wid, c[2]-wid])
    p.append([c[0]-wid, c[1]-wid, c[2]-wid]) #same as first to close plot
    
    # 顶部
    p.append([c[0]-wid, c[1]-wid, c[2]+wid])
    p.append([c[0]-wid, c[1]+wid, c[2]+wid])
    p.append([c[0]+wid, c[1]+wid, c[2]+wid])
    p.append([c[0]+wid, c[1]-wid, c[2]+wid])
    p.append([c[0]-wid, c[1]-wid, c[2]+wid]) #same as first to close plot
    
    #  竖直边
    p.append([c[0]-wid, c[1]-wid, c[2]+wid])
    p.append([c[0]-wid, c[1]+
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值