中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress測試數(shù)據(jù)中文北京seo顧問推推蛙

wordpress測試數(shù)據(jù)中文,北京seo顧問推推蛙,產(chǎn)品推廣宣傳語,南寧網(wǎng)站建設(shè)藍(lán)云基于OpenCV庫實(shí)現(xiàn)雙目測量系統(tǒng)外參標(biāo)定過程。通過分析雙目測量系統(tǒng)左右相機(jī)拍攝的棋盤格標(biāo)定板圖像,包括角點(diǎn)檢測、立體標(biāo)定、立體校正和畸變校正的步驟,獲取左右相機(jī)的相對(duì)位置關(guān)系和姿態(tài)。 a.檢測每張圖像中的棋盤格角點(diǎn),并進(jìn)行亞像素級(jí)精…

基于OpenCV庫實(shí)現(xiàn)雙目測量系統(tǒng)外參標(biāo)定過程。通過分析雙目測量系統(tǒng)左右相機(jī)拍攝的棋盤格標(biāo)定板圖像,包括角點(diǎn)檢測、立體標(biāo)定、立體校正和畸變校正的步驟,獲取左右相機(jī)的相對(duì)位置關(guān)系和姿態(tài)。

a.檢測每張圖像中的棋盤格角點(diǎn),并進(jìn)行亞像素級(jí)精確化;根據(jù)左右相機(jī)的角點(diǎn)坐標(biāo)、三維坐標(biāo)、內(nèi)參矩陣和畸變系數(shù),計(jì)算旋轉(zhuǎn)矩陣R和平移向量T,利用最小二乘法最小化重投影誤差;根據(jù)標(biāo)定結(jié)果對(duì)圖像進(jìn)行畸變校正。

b.輸出為雙目測量系統(tǒng)的標(biāo)定結(jié)果,包括旋轉(zhuǎn)矩陣、平移向量、投影矩陣和重投影矩陣,并通過imshow展示校正后的圖像和視差圖,以評(píng)估標(biāo)定質(zhì)量。

// 單目內(nèi)參標(biāo)定后進(jìn)行雙目標(biāo)定
#include<opencv2/calib3d/calib3d.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/opencv.hpp>
#include<iostream>
#include <opencv2/core/utils/logger.hpp> //隱藏日志using namespace std;
using namespace cv;int n = 1;
int m = 1;int i = 1;
int j = 1;const int imagewidth = 2048;
const int imagehight = 2048;//圖像的長寬
const int boardwidth = 11;
const int boardhight = 8;//圖片上棋盤格標(biāo)定板的內(nèi)角點(diǎn)個(gè)數(shù)(行、列的角點(diǎn)數(shù))
const int framenumber = 13;//標(biāo)定圖片數(shù)
const int squaresize = 50;//棋盤格標(biāo)定板單個(gè)方格的大小
const cv::Size imagesize = cv::Size(imagewidth, imagehight);
const cv::Size boardsize = cv::Size(boardwidth, boardhight);vector<cv::Point3f> objectpoint;
vector<vector<cv::Point3f>> objpoint;vector<cv::Point2f> cornerL;
vector<cv::Point2f> cornerR;vector<vector<cv::Point2f>> imagepointL;
vector<vector<cv::Point2f>> imagepointR;Mat cameraMatrixL = (Mat_<double>(3, 3) << 2946.368631790921, 0, 992.3628859436697,0, 2947.324578115115, 1041.333927112967,0, 0, 1);
Mat distcoeffL = (Mat_<double>(5, 1) << -0.09314094645325596, 0.212990743663531, 0.001099206303953861, 0.0003299289802971191, 2.911155272910228);
Mat cameraMatrixR = (Mat_<double>(3, 3) << 2935.765597816497, 0, 997.8971330325958,0, 2938.133144049969, 1001.295460381107,0, 0, 1);
//獲得的畸變參數(shù)
Mat distcoeffR = (Mat_<double>(5, 1) << -0.07849722399107049, -0.05592478850461548, -0.0009348860866305323, 8.96474606278152e-06, 4.375424240166232);cv::Mat R, T, E, F;
cv::Mat R1, R2, P1, P2, Q;cv::Mat maplx, maply, maprx, mapry;cv::Mat imageL, grayimageL;
cv::Mat imageR, grayimageR;cv::Rect validROIL, validROIR;void worldpoint()
{for (int i = 0; i < boardhight; i++){for (int j = 0; j < boardwidth; j++){objectpoint.push_back(cv::Point3f(i * squaresize, j * squaresize, 0.0f));}}for (int w = 1; w <= framenumber; w++){objpoint.push_back(objectpoint);}
}void outputparam()
{cv::FileStorage fs("intrinsics.yml", cv::FileStorage::WRITE);fs << "cameraMatrixL" << cameraMatrixL << "cameraDistcoeffL" << distcoeffL << "cameraMatrixR" << cameraMatrixR << "cameraDistcoeffR" << distcoeffR;fs.release();std::cout << "cameraMatrixL=:" << cameraMatrixL << endl << "cameraDistcoeffL=:" << distcoeffL << endl << "cameraMatrixR=:" << cameraMatrixR << endl << "cameraDistcoeffR=:" << distcoeffR << endl;fs.open("extrinsics.yml", cv::FileStorage::WRITE);fs << "R" << R << "T" << T << "Rl" << R1 << "Rr" << R2 << "Pl" << P1 << "Pr" << P2 << "Q" << Q << "F" << F << "E" << E;std::cout << "R=" << R << endl << "T=" << T << endl << "Rl=" << R1 << endl << "Rr=" << R2 << endl << "Pl=" << P1 << endl << "Pr=" << P2 << endl << "Q=" << Q << endl << "F=" << F << endl << "E=" << E << endl;fs.release();}int main()
{cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//不再輸出日志//或//utils::logging::setLogLevel(utils::logging::LOG_LEVEL_ERROR);//只輸出錯(cuò)誤日志//讀取圖片int current = 1;while (current <= framenumber){char frameL[50];sprintf_s(frameL, 50, "external/l%d.bmp", n++);imageL = cv::imread(frameL);cv::cvtColor(imageL, grayimageL, cv::ColorConversionCodes::COLOR_BGR2GRAY);char frameR[50];sprintf_s(frameR, 50, "external/r%d.bmp", m++);imageR = cv::imread(frameR);cv::cvtColor(imageR, grayimageR, cv::ColorConversionCodes::COLOR_BGR2GRAY);bool foundL, foundR;foundL = cv::findChessboardCorners(imageL, boardsize, cornerL);foundR = cv::findChessboardCorners(imageR, boardsize, cornerR);if (foundL == true && foundR == true){cv::cornerSubPix(grayimageL, cornerL, cv::Size(11, 11), cv::Size(-1, -1), cv::TermCriteria(cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS, 30, 1e-6));cv::cornerSubPix(grayimageR, cornerR, cv::Size(11, 11), cv::Size(-1, -1), cv::TermCriteria(cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS, 30, 1e-6));cv::drawChessboardCorners(imageL, boardsize, cornerL, foundL);//cv::imshow("L", imageL);namedWindow("L", WINDOW_NORMAL);imshow("L", imageL);cv::waitKey(10);cv::drawChessboardCorners(imageR, boardsize, cornerR, foundR);//cv::imshow("R", imageR);namedWindow("R", WINDOW_NORMAL);imshow("R", imageR);cv::waitKey(10);imagepointL.push_back(cornerL);imagepointR.push_back(cornerR);cout << "The image  " << current << "  is good" << endl;}else{std::cout << "The image is bad please try again" << endl;}current++;}worldpoint();cout << "開始標(biāo)定" << endl;double err = cv::stereoCalibrate(objpoint, imagepointL, imagepointR, cameraMatrixL, distcoeffL, cameraMatrixR, distcoeffR, imagesize, R, T, E, F,CALIB_USE_INTRINSIC_GUESS,cv::TermCriteria(cv::TermCriteria::COUNT + cv::TermCriteria::EPS, 30, 1e-6));cout << "The err = " << err << endl;cv::stereoRectify(cameraMatrixL, distcoeffL, cameraMatrixR, distcoeffR, imagesize, R, T, R1, R2, P1, P2, Q, cv::CALIB_ZERO_DISPARITY, -1, imagesize, &validROIL, &validROIR);cv::initUndistortRectifyMap(cameraMatrixL, distcoeffL, R1, P1, imagesize, CV_32FC1, maplx, maply);cv::initUndistortRectifyMap(cameraMatrixR, distcoeffR, R2, P2, imagesize, CV_32FC1, maprx, mapry);outputparam();cv::Mat canvas;double sf;int w, h;sf = 600. / MAX(imagesize.width, imagesize.height);w = cvRound(imagesize.width * sf);h = cvRound(imagesize.height * sf);canvas.create(h, w * 2, CV_8UC3);int currents = 1;while (currents <= framenumber){char frameL[50];sprintf_s(frameL, 50, "external/l%d.bmp", i++);imageL = cv::imread(frameL);char frameR[50];sprintf_s(frameR, 50, "external/r%d.bmp", j++);imageR = cv::imread(frameR);cv::Mat rectifyImageL2, rectifyImageR2;cv::remap(imageL, rectifyImageL2, maplx, maply, cv::InterpolationFlags::INTER_LINEAR);cv::remap(imageR, rectifyImageR2, maprx, mapry, cv::InterpolationFlags::INTER_LINEAR);cv::Mat canvasPart = canvas(cv::Rect(w * 0, 0, w, h));resize(rectifyImageL2, canvasPart, canvasPart.size(), 0, 0, cv::INTER_AREA);cv::Rect vroiL(cvRound(validROIL.x * sf), cvRound(validROIL.y * sf),cvRound(validROIL.width * sf), cvRound(validROIL.height * sf));cv::rectangle(canvasPart, vroiL, cv::Scalar(0, 0, 255), 3, 8);canvasPart = canvas(cv::Rect(w, 0, w, h));resize(rectifyImageR2, canvasPart, canvasPart.size(), 0, 0, cv::INTER_LINEAR);cv::Rect vroiR(cvRound(validROIR.x * sf), cvRound(validROIR.y * sf),cvRound(validROIR.width * sf), cvRound(validROIR.height * sf));cv::rectangle(canvasPart, vroiR, cv::Scalar(0, 255, 0), 3, 8);for (int i = 0; i < canvas.rows; i += 16)line(canvas, cv::Point(0, i), cv::Point(canvas.cols, i), cv::Scalar(0, 255, 0), 1, 8);cv::imshow("rectified", canvas);if (cv::waitKey() > 0){currents++;}}return 0;
}

代碼運(yùn)行結(jié)果如下:?

http://www.risenshineclean.com/news/60359.html

相關(guān)文章:

  • 網(wǎng)站視頻是什么軟件做的廣州seo關(guān)鍵詞優(yōu)化費(fèi)用
  • 建設(shè)網(wǎng)站公司是什么百度網(wǎng)址提交入口平臺(tái)
  • 沈陽做微網(wǎng)站的公司重慶seo論壇
  • 化工企業(yè)商城網(wǎng)站建設(shè)公司網(wǎng)絡(luò)銷售平臺(tái)上市公司有哪些
  • 武漢網(wǎng)站制作公司電話百度關(guān)鍵詞優(yōu)化是什么意思
  • 今日軍事報(bào)道重慶關(guān)鍵詞優(yōu)化平臺(tái)
  • web個(gè)人網(wǎng)頁模板淮安網(wǎng)站seo
  • 網(wǎng)站錨點(diǎn)鏈接怎么做南京網(wǎng)絡(luò)推廣外包
  • 網(wǎng)站規(guī)劃主要內(nèi)容開網(wǎng)店哪個(gè)平臺(tái)靠譜
  • 專門制作視頻的軟件視頻優(yōu)化軟件
  • wordpress創(chuàng)建知識(shí)庫seo網(wǎng)站優(yōu)化培訓(xùn)要多少錢
  • 政府部門網(wǎng)站建設(shè)推廣文案
  • 檔案網(wǎng)站建設(shè)網(wǎng)頁百度廣告怎么收費(fèi)標(biāo)準(zhǔn)
  • 企業(yè)網(wǎng)站建設(shè) 新聞宣傳關(guān)鍵詞有哪些
  • 分類網(wǎng)站建設(shè)國內(nèi)網(wǎng)站建設(shè)公司
  • 孕婦做兼職上哪家網(wǎng)站深圳網(wǎng)絡(luò)推廣建站
  • 網(wǎng)站建設(shè) 核對(duì)流程網(wǎng)站seo優(yōu)化服務(wù)
  • 電商類網(wǎng)站開發(fā)百度指數(shù)怎么提升
  • 網(wǎng)站開發(fā)實(shí)戰(zhàn)教程保定seo推廣公司
  • 成人大專報(bào)考條件seo 重慶
  • wordpress大數(shù)據(jù)插件搜索引擎優(yōu)化代理
  • 大學(xué)培訓(xùn)中心網(wǎng)站建設(shè)系統(tǒng)清理優(yōu)化工具
  • 濟(jì)南行知網(wǎng)站建設(shè)全國唯一一個(gè)沒有疫情的城市
  • 數(shù)字中國建設(shè)峰會(huì) 官方網(wǎng)站seo引擎優(yōu)化方案
  • 網(wǎng)站設(shè)計(jì)開發(fā)中的具體步驟站長之家域名信息查詢
  • 做mg動(dòng)畫賺錢網(wǎng)站小紅書seo
  • 網(wǎng)站上的圖片一般多大網(wǎng)站統(tǒng)計(jì)系統(tǒng)
  • 地方生活門戶網(wǎng)站名稱網(wǎng)站運(yùn)營與維護(hù)
  • 淮北做網(wǎng)站公司百度經(jīng)驗(yàn)官網(wǎng)首頁
  • 注冊(cè)公司域名后如何做網(wǎng)站愛站網(wǎng)域名查詢