-
大小: 81.92MB文件類型: .zip金幣: 1下載: 0 次發(fā)布日期: 2022-09-15
- 語言: C/C++
- 標(biāo)簽: opencv??C++??相機(jī)標(biāo)定??
資源簡介
此文件夾中包含棋盤圖片集和代碼文件夾,使用前請(qǐng)閱讀readme.txt,里面寫了使用方法,此文件能夠成功輸出標(biāo)定誤差及一些相機(jī)參數(shù),實(shí)現(xiàn)攝像機(jī)標(biāo)定
代碼片段和文件信息
//?chassboard.cpp?:?此文件包含?“main“?函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。
//
#include?“pch.h“
#include?
#include?“opencv2/core/core.hpp“??
#include?“opencv2/imgproc/imgproc.hpp“??
#include?“opencv2/calib3d/calib3d.hpp“??
#include?“opencv2/highgui/highgui.hpp“??
#include???
#include?
#include?
#include?
using?namespace?cv;
using?namespace?std;
int?main()
{
ifstream?fin(“chassread.txt“);?/*?標(biāo)定所用圖像文件的路徑?*/
ofstream?fout(“chassoutput.txt“);??/*?保存標(biāo)定結(jié)果的文件?*/
???//讀取每一幅圖像,從中提取出角點(diǎn),然后對(duì)角點(diǎn)進(jìn)行亞像素精確化???
cout?<“開始提取角點(diǎn)………………“;
int?image_count?=?0;??/*?圖像數(shù)量?*/
Size?image_size;??/*?圖像的尺寸?*/
Size?board_size?=?Size(10?7);????/*?標(biāo)定板上每行、列的角點(diǎn)數(shù)(不算圖像邊界)?*/
vector?image_points_buf;??/*?緩存每幅圖像上檢測到的角點(diǎn)?*/
vector>?image_points_seq;?/*?保存檢測到的所有角點(diǎn)?*/
string?filename;
int?count?=?0;//用于存儲(chǔ)角點(diǎn)個(gè)數(shù)。??
while?(getline(fin?filename))
{
image_count++;
//?用于觀察檢驗(yàn)輸出??
cout?<“image_count?=?“?< //cout?<“-->count?=?“?< Mat?imageInput?=?imread(filename);
cout?<“filename:“?< if?(image_count?==?1)??//讀入第一張圖片時(shí)獲取圖像寬高信息??
{
image_size.width?=?imageInput.cols;
image_size.height?=?imageInput.rows;
cout?<“image_size.width?=?“?< cout?<“image_size.height?=?“?< }
/*?提取角點(diǎn)?*/
if?(0?==?findChessboardCorners(imageInput?board_size?image_points_buf))
{
cout?<“can?not?find?chessboard?corners!\n“;?//找不到角點(diǎn)??
exit(1);
}
else
{
Mat?view_gray;
cvtColor(imageInput?view_gray?CV_RGB2GRAY);
/*?亞像素精確化?*/
cornerSubPix(view_gray?image_points_buf?Size(5?5)?Size(-1?-1)?TermCriteria(CV_TERMCRIT_EPS?+?CV_TERMCRIT_ITER?30?0.1));
//亞像素精確化方法二
//Size(55)是搜索窗口的大小Size(-1-1)表示沒有死區(qū)
//第四個(gè)參數(shù)定義求角點(diǎn)的迭代過程的終止條件,可以為迭代次數(shù)和角點(diǎn)精度兩者的組合
count?+=?image_points_buf.size();
image_points_seq.push_back(image_points_buf);//保存亞像素角點(diǎn)
drawChessboardCorners(view_gray?board_size?image_points_buf?false);
//用于繪制被成功標(biāo)定的角點(diǎn),輸入8位灰度或者彩色圖像
//第四個(gè)參數(shù)是標(biāo)志位,用來指示定義的棋盤內(nèi)角點(diǎn)是否被完整的探測到
//false表示有未被探測到的內(nèi)角點(diǎn),這時(shí)候函數(shù)會(huì)以圓圈標(biāo)記出檢測到的內(nèi)角點(diǎn)
namedWindow(“Camera?Calibration“?WINDOW_NORMAL);
imshow(“Camera?Calibration“?view_gray);//顯示圖片
waitKey(500);
}
}
int?total?=?image_points_seq.size();
cout?<“total?=?“?< int?CornerNum?=?board_size.width*board_size.height;??//每張圖片上總的角點(diǎn)數(shù)??
for?(int?ii?=?0;?ii? {
if?(0?==?ii?%?CornerNum)//?54?是每幅圖片的角點(diǎn)個(gè)數(shù)。此判斷語句是為了輸出?圖片號(hào),便于控制臺(tái)觀看???
{
int?i?=?-1;
i?=?ii?/?CornerNum;
int?j?=?i?+?1;
cout?<“-->?第?“?<?:?“?< }
if?(0?==?ii?%?3)??//?此判斷語句,格式化輸出,便于控制臺(tái)查看??
{
cout?< }
else
{
cout.width(10);
}
//輸出所有的角點(diǎn)??
cout?<“?-->“?< cout?<“?-->“?< }
cout?<“角點(diǎn)提取完成!\n“;
//以下是攝像機(jī)標(biāo)定??
cout?<“開始標(biāo)定………………“;
/*棋盤
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-10?15:28??chass\
?????文件?????1279411??2019-04-10?15:28??chass\chass1.jpg
?????文件?????1303380??2019-04-10?15:28??chass\chass10.jpg
?????文件?????1191621??2019-04-10?15:28??chass\chass11.jpg
?????文件?????1209614??2019-04-10?15:28??chass\chass12.jpg
?????文件?????1339557??2019-04-10?15:28??chass\chass13.jpg
?????文件?????1132406??2019-04-10?15:28??chass\chass14.jpg
?????文件?????1193659??2019-04-10?15:28??chass\chass15.jpg
?????文件?????1289723??2019-04-10?15:28??chass\chass16.jpg
?????文件?????1177490??2019-04-10?15:28??chass\chass17.jpg
?????文件?????1177847??2019-04-10?15:28??chass\chass18.jpg
?????文件?????1357712??2019-04-10?15:28??chass\chass19.jpg
?????文件?????1154993??2019-04-10?15:28??chass\chass2.jpg
?????文件?????1350788??2019-04-10?15:28??chass\chass20.jpg
?????文件?????1304944??2019-04-10?15:28??chass\chass21.jpg
?????文件?????1392445??2019-04-10?15:28??chass\chass22.jpg
?????文件?????1166829??2019-04-10?15:28??chass\chass23.jpg
?????文件?????1181574??2019-04-10?15:28??chass\chass24.jpg
?????文件?????1263994??2019-04-10?15:28??chass\chass25.jpg
?????文件?????1273034??2019-04-10?15:28??chass\chass26.jpg
?????文件?????1208757??2019-04-10?15:28??chass\chass27.jpg
?????文件?????1270539??2019-04-10?15:28??chass\chass28.jpg
?????文件?????1273464??2019-04-10?15:28??chass\chass3.jpg
?????文件?????1279395??2019-04-10?15:28??chass\chass4.jpg
?????文件?????1413078??2019-04-10?15:28??chass\chass5.jpg
?????文件?????1315784??2019-04-10?15:28??chass\chass6.jpg
?????文件?????1168550??2019-04-10?15:28??chass\chass7.jpg
?????文件?????1191964??2019-04-10?15:28??chass\chass8.jpg
?????文件?????1339661??2019-04-10?15:28??chass\chass9.jpg
?????目錄???????????0??2019-04-13?14:02??chassboard\
?????目錄???????????0??2019-04-13?14:01??chassboard\.vs\
............此處省略73個(gè)文件信息
評(píng)論
共有 條評(píng)論