91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-23
  • 語言: C/C++
  • 標簽: opencv??

資源簡介

利用opencv圖像算法庫實現對相機內外參的標定,并利用標定結果對畸變圖像進行校正。

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#include?
#include?
#include?

#include?“opencv2/opencv.hpp“
#include?
#include?“opencv2/calib3d/calib3d.hpp“
#include?

using?namespace?std;
using?namespace?cv;

void?getFiles(string?path?vector&?files)
{
//文件句柄
intptr_t?hFile?=?0;
//文件信息
struct?_finddata_t?fileinfo;
string?p;
if?((hFile?=?_findfirst(p.assign(path).append(“\\*“).c_str()?&fileinfo))?!=?-1)
{
do
{
//如果是目錄迭代之
//如果不是加入列表
if?((fileinfo.attrib?&??_A_SUBDIR))
{
if?(strcmp(fileinfo.name?“.“)?!=?0?&&?strcmp(fileinfo.name?“..“)?!=?0)
getFiles(p.assign(path).append(“\\“).append(fileinfo.name)?files);
}
else
{
files.push_back(p.assign(path).append(“\\“).append(fileinfo.name));
}
}?while?(_findnext(hFile?&fileinfo)?==?0);
_findclose(hFile);
}
}

int?main()
{
string?filePath?=?“D:\\uidq0829\\Desktop\\rgb\\2“;
vector?files;

////獲取該路徑下的所有文件
getFiles(filePath?files);

const?int?board_w?=?9;
const?int?board_h?=?9;
const?int?NPoints?=?board_w?*?board_h;//棋盤格內角點總數
const?int?boardSize?=?20;?//mm
Mat?image?grayimage;
Size?ChessBoardSize?=?cv::Size(board_w?board_h);
vector?tempcorners;

vector?object;
for?(int?j?=?0;?j? {
object.push_back(Point3f((j?%?board_w)?*?boardSize?(j?/?board_w)?*?boardSize?0));
}

cv::Matx33d?intrinsics;//z:相機內參
//cv::Vec4d?distortion_coeff;//z:相機畸變系數
cv::Mat?distortion_coeff;?//z:相機畸變系數

vector?>?objectv;
vector?>?imagev;

Size?corrected_size(1280?720);
Mat?mapx?mapy;
Mat?corrected;

ofstream?intrinsicfile(“intrinsics_front1103.txt“);
ofstream?disfile(“dis_coeff_front1103.txt“);
int?num?=?0;
bool?bCalib?=?false;

namedWindow(“corner_image“?0);
resizeWindow(“corner_image“?Size(1280?720));
namedWindow(“corrected“?0);
resizeWindow(“corrected“?Size(1280?720));

while?(num? {
image?=?imread(files[num]);

if?(image.empty())
break;
imshow(“corner_image“?image);
waitKey(10);
cvtColor(image?grayimage?CV_BGR2GRAY);
IplImage?tempgray?=?grayimage;
bool?findchessboard?=?cvCheckChessboard(&tempgray?ChessBoardSize);

if?(findchessboard)
{
bool?find_corners_result?=?findChessboardCorners(grayimage?ChessBoardSize?tempcorners?3);
if?(find_corners_result)
{
cornerSubPix(grayimage?tempcorners?cvSize(5?5)?cvSize(-1?-1)?cvTermCriteria(CV_TERMCRIT_EPS?+?CV_TERMCRIT_ITER?30?0.1));
drawChessboardCorners(image?ChessBoardSize?tempcorners?find_corners_result);
imshow(“corner_image“?image);
cvWaitKey(2000);

objectv.push_back(object);
imagev.push_back(tempcorners);
cout?< }
}
tempcorners.clear();
num++;
}


//cv::Mat?cameraMatirx?distCoeffs;
std::vector?r

評論

共有 條評論