python+opencv实现照相机模型以及增强现实

一、在图片上实现3D图片投影(一)相机投影模型(1)针孔相机模型首先定义坐标系:(1)相机坐标系(三维)在这个坐标系中,相机的中心为光心,以光心c为原点和坐标轴X,Y,Z组成了相机坐标系(2)图片坐标系(二维)在一个图像平面中,以平面的中心像主点P为原点和坐标轴x,y组成了图片坐标系。这两个坐标系之间的线性变化为:(2)内参数内参数是指相机内部自带的,不受外界影响的参数,...
摘要由CSDN通过智能技术生成

一、在图片上实现3D图片投影

(一)相机投影模型

(1)针孔相机模型
在这里插入图片描述
在这里插入图片描述
首先定义坐标系:
(1)相机坐标系(三维)
在这个坐标系中,相机的中心为光心,以光心c为原点和坐标轴X,Y,Z组成了相机坐标系
(2)图片坐标系(二维)
在一个图像平面中,以平面的中心像主点P为原点和坐标轴x,y组成了图片坐标系。
这两个坐标系之间的线性变化为:
在这里插入图片描述
(2)内参数
内参数是指相机内部自带的,不受外界影响的参数,主要有焦距f和相机自带的误差
内参矩阵:
在这里插入图片描述
在这里插入图片描述
(3)外参数
主要是旋转、平移带来的参数变化
在这里插入图片描述
两类参数的联系
在这里插入图片描述

二、以平面和标记物进行姿态估计

(1)在一幅图像上叠加一个立方体
基本流程:
1.提取两幅图像的sift特征
2.用RANSAC算法估计单应性矩阵
3.在图像中投影成3D模型
前两个问题在之前的博客中都有详细的过程SIFT详解 RANSAC算法
现在重点解决第三个问题
原图如下:
在这里插入图片描述在这里插入图片描述
代码参考《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.
"""
import os
root=os.getcwd()+"\\"

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
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值