基于PyOpenGL和Pygame的增强现实实现
环境配置:
- 首先我们要先安装pygame和PyopenGL
pygame 可以直接在运行中里pip install pygame
直接安装
pyopenGL的话如果用语句pip install opengl
是默认安装的是32位系统的,如果电脑为64位的可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl
ctrl+F搜索PyOpenGL,选择适应自己python版本的64位下载
我的python版本是3.5.2的,下载完后在运行里输入语句pip install PyOpenGL-3.1.3b2-cp35-cp35m-win_amd64.whl
下载
安装完成后就可以开始测试了。
用的代码基本都为<python计算机视觉>书上的代码,基本只要改个图片路径就可以运行了。
简单的增强现实静态实现
简单立方体实现:
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.
"""
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 = []
# bottom
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
# top
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
# vertical sides
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])
p.append([c[0]+wid, c[1]-wid, c[2]+wid])
p.append([c[0]+wid, c[1]-wid, c[2]-wid])
return array(