张正友相机标定Opencv实现程序(ubuntu下)

相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。

相机标定的输入:标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上)。

相机标定的输出:摄像机的内参、外参系数

流程:

1. 准备标定图片(D435可以利用程序保存所得到的图片)

2. 对每一张标定图片,提取角点信息

3. 对每一张标定图片,进一步提取亚像素角点信息

4. 在棋盘标定图上绘制找到的内角点(非必须,仅为了显示)

5. 相机标定

主要是程序在Linux下的运行。

1. 建立文件夹 cameraCalibration         
     mkdir cameraCalibration
2.  cd ./cameraCalibration

3. (1)建立文件夹 iamge 保存标定所需的图片
        src 保存程序
  (2)创建文件  Cmakelists.txt
       并写入
     CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
     PROJECT( calibration )
        SET(CMAKE_CXX_COMPILER "g++")
     SET( CMAKE_BUILD_TYPE Debug  )
     SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
     SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
     INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include )
     LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib)
     ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )

 现在cameraCalibration文件夹内应该有 image  src   CmakeLists.txt

3.在src文件夹内创建

1).calibration.cpp

#include <iostream>
#include <sstream>
#include <time.h>
#include <stdio.h>
#include <fstream>

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc
  • 0
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值