資源簡介
此文件夾中包含棋盤圖片集和代碼文件夾,使用前請閱讀readme.txt,里面寫了使用方法,此文件能夠成功輸出標定誤差及一些相機參數,實現攝像機標定
代碼片段和文件信息
//?chassboard.cpp?:?此文件包含?“main“?函數。程序執行將在此處開始并結束。
//
#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“);?/*?標定所用圖像文件的路徑?*/
ofstream?fout(“chassoutput.txt“);??/*?保存標定結果的文件?*/
???//讀取每一幅圖像,從中提取出角點,然后對角點進行亞像素精確化???
cout?<“開始提取角點………………“;
int?image_count?=?0;??/*?圖像數量?*/
Size?image_size;??/*?圖像的尺寸?*/
Size?board_size?=?Size(10?7);????/*?標定板上每行、列的角點數(不算圖像邊界)?*/
vector?image_points_buf;??/*?緩存每幅圖像上檢測到的角點?*/
vector>?image_points_seq;?/*?保存檢測到的所有角點?*/
string?filename;
int?count?=?0;//用于存儲角點個數。??
while?(getline(fin?filename))
{
image_count++;
//?用于觀察檢驗輸出??
cout?<“image_count?=?“?< //cout?<“-->count?=?“?< Mat?imageInput?=?imread(filename);
cout?<“filename:“?< if?(image_count?==?1)??//讀入第一張圖片時獲取圖像寬高信息??
{
image_size.width?=?imageInput.cols;
image_size.height?=?imageInput.rows;
cout?<“image_size.width?=?“?< cout?<“image_size.height?=?“?< }
/*?提取角點?*/
if?(0?==?findChessboardCorners(imageInput?board_size?image_points_buf))
{
cout?<“can?not?find?chessboard?corners!\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)表示沒有死區
//第四個參數定義求角點的迭代過程的終止條件,可以為迭代次數和角點精度兩者的組合
count?+=?image_points_buf.size();
image_points_seq.push_back(image_points_buf);//保存亞像素角點
drawChessboardCorners(view_gray?board_size?image_points_buf?false);
//用于繪制被成功標定的角點,輸入8位灰度或者彩色圖像
//第四個參數是標志位,用來指示定義的棋盤內角點是否被完整的探測到
//false表示有未被探測到的內角點,這時候函數會以圓圈標記出檢測到的內角點
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;??//每張圖片上總的角點數??
for?(int?ii?=?0;?ii? {
if?(0?==?ii?%?CornerNum)//?54?是每幅圖片的角點個數。此判斷語句是為了輸出?圖片號,便于控制臺觀看???
{
int?i?=?-1;
i?=?ii?/?CornerNum;
int?j?=?i?+?1;
cout?<“-->?第?“?<?:?“?< }
if?(0?==?ii?%?3)??//?此判斷語句,格式化輸出,便于控制臺查看??
{
cout?< }
else
{
cout.width(10);
}
//輸出所有的角點??
cout?<“?-->“?< cout?<“?-->“?< }
cout?<“角點提取完成!\n“;
//以下是攝像機標定??
cout?<“開始標定………………“;
/*棋盤
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個文件信息
評論
共有 條評論