資源簡介
使用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環境高級編程第二版和第三版合集
評論
共有 條評論