资源简介
使用VS2017+OpenCV,实现了黑白棋盘相机标定,求出相机内参矩阵、外参矩阵,还实现了鸟瞰图生成。
包含vs的解决方案、实验报告
代码片段和文件信息
//--------------------------------------【程序说明】-------------------------------------------
// 程序说明:计算机视觉练习1
// 程序描述:摄像机标定及鸟瞰图生成
// 开发测试所用操作系统: Windows 10 64bit
// 开发测试所用IDE版本:Visual Studio 2017 Debug x64
// 开发测试所用OpenCV版本: 3.4.1
// 2019年10月 Created by 冯微伟
//------------------------------------------------------------------------------------------------
#include “stdafx.h“
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
//-----------------------------------【全局变量声明】--------------------------------------
// 描述:全局变量声明
//--------------------------------------------------------------------------------------------
int image_index = -1; //图像index用于枚举和计数
const int maxIndex = 11;
Size image_size; //图像的尺寸
Size board_size = Size (9 6); // 标定板上每行、列的角点数
vector image_corners; // 每幅图像上检测到的角点数组
vector> all_corners; //所有图像角点数组
string filename;
const string filePath = ““;//e://opencv//projects//
Size cell_size = Size (100.0 100.0); //实际测量得到的每个棋盘格的大小
vector> object_points;// 标定板上角点的三维坐标数组
Mat cameraMatrix = Mat (3 3 CV_32FC1 Scalar::all (0)); // 摄像机内参数矩阵
Mat distCoeffs = Mat (1 5 CV_32FC1 Scalar::all (0)); //摄像机的5个畸变系数:k1k2p1p2k3
vector tvecsMat; //图像的旋转向量数组
vector rvecsMat;//图像的平移向量数组
//-----------------------------------【函数声明】--------------------------------------
// 描述:函数声明
//---------------------------------------------------------------------------------------
string addInexToName (int index string fileDirectory string tail);
void getImageCorners ();
void cameraCalibrate ();
void outputCalibrateResult ();
void undistortImages ();
void reProject ();
int main ()
{
getImageCorners ();//获得图像亚像素角点
cameraCalibrate ();//摄像机标定,得出内参外参
outputCalibrateResult ();//将标定结果存储到文件
undistortImages ();//矫正图像并保存
reProject ();//生成每张图像的鸟瞰图并保存
return 0;
}
//---------------------------【addInexToName()】----------------------------------------------
// 描述:给定图片的index,返回图片的filename
//-------------------------------------------------------------------------
string addInexToName (int index string fileDirectory string tail) {
char buff[200];
sprintf_s (buff “%02d“ index);
string m_int2str (buff);
string name = filePath + fileDirectory + “//test“ + m_int2str + tail;
return name;
}
//----------------------------【getImageCorners()】---------------------------------------------
// 描述:获得所有图像的角点,并进行亚像素精确化。填充 all_corners数组。
// 显示并保存标记过角点的图像。
//-------------------------------------------------------------------------
void getImageCorners () {
cout << “开始提取角点......\n“;
while (1)
{
image_index++;//从0-11,共12个数字
if (image_index > maxIndex) break;
Mat imageInput = imread (addInexToName (image_index “pic“ “.jpg“));
//读入第一张图片时获取图像宽高信息
if (image_index == 0)
{
image_size.width = ima
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3894 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\caliberation_result.txt
文件 15458 2019-10-12 20:55 相机标定和鸟瞰图生成_vs2017\cv_practice_1\cv_practice_1.cpp
文件 8221 2019-10-12 19:09 相机标定和鸟瞰图生成_vs2017\cv_practice_1\cv_practice_1.vcxproj
文件 1258 2019-10-12 19:09 相机标定和鸟瞰图生成_vs2017\cv_practice_1\cv_practice_1.vcxproj.filters
文件 165 2019-10-12 19:09 相机标定和鸟瞰图生成_vs2017\cv_practice_1\cv_practice_1.vcxproj.user
文件 78167 2019-10-12 19:06 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test00.jpg
文件 151134 2019-10-12 20:52 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test00_a.jpg
文件 207266 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test00_b.jpg
文件 133908 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test00_c.jpg
文件 76157 2019-10-12 19:06 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test01.jpg
文件 141933 2019-10-12 20:52 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test01_a.jpg
文件 194112 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test01_b.jpg
文件 129194 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test01_c.jpg
文件 81463 2019-10-12 19:06 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test02.jpg
文件 151415 2019-10-12 20:52 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test02_a.jpg
文件 202934 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test02_b.jpg
文件 123821 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test02_c.jpg
文件 69397 2019-10-12 19:06 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test03.jpg
文件 131842 2019-10-12 20:52 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test03_a.jpg
文件 183817 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test03_b.jpg
文件 129213 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test03_c.jpg
文件 73033 2019-10-12 19:06 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test04.jpg
文件 140900 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test04_a.jpg
文件 195045 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test04_b.jpg
文件 131064 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test04_c.jpg
文件 89356 2019-10-12 19:07 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test05.jpg
文件 171444 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test05_a.jpg
文件 220715 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test05_b.jpg
文件 125250 2019-10-12 20:53 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test05_c.jpg
文件 85023 2019-10-12 19:07 相机标定和鸟瞰图生成_vs2017\cv_practice_1\pic\test06.jpg
............此处省略90个文件信息
- 上一篇:教师综合评价系统文档源码数据库
- 下一篇:UNIX环境高级编程第二版和第三版合集
相关资源
- opencv4.0.1+contrib+vs2017_x64
- OpenCv-4 Mingw(32bit)编译生成库包
- DNN模型所需要的三个文件- bvlc_google
- 学习OpenCV中文版书签版以及随书源码
- OpenCV练习12-用滚动条移动图片.zip
- 安卓opencv实现多人检测,人脸检测,
- OpenCV 3.42 for Qt 5编译好的库
- Windows环境下供Qt使用的OpenCV库 (已经
- opencv_ffmpeg.rar
- 基于OpenCV&Tesseract;-OCR实现银行卡号识
- 数字图像处理资源合集
- openCV部署环境包
- OpenCV图像处理编程pdf 增强版完整版
- OpenCV-vs2013-vc12-x64
- 34种字符识别-BP神经网络算法-VS2103+
- OpenCV ANN 神经网络 数字识别
- 基于opencv的性别识别
- OpenCV4.0+contrib_installVS2017
- 利用VS编写的基于Opencv大米计数程序
- opencv 比赛对阵图自动生成
- ippicv_2017u3_lnx_intel64_general_20170822.tar
- opencv识别数字
- openCV for iOS
- 眼底图像拼接
- OPENCV实现ORB/SURF/SIFT + RANSAC 图像自动拼
- ippicv_2017u3_lnx_intel64_general_20180518.tgz
- LearningOpenCV中文版-于仕琪书源码.zip
- qtOpenCVTools v1.7.0.rar
- mingw64编译好的OpenCV3.4.10
- OpenCV 4.2.0 && Qt5.14.1 编译好的库
评论
共有 条评论