opencv 3.0 相机校准 Calibration Calib
来源:互联网 发布:ubuntu c ide 编辑:程序博客网 时间:2024/05/18 19:42
最近使用opencv3.0
发现宏定义居然改变了 不过有规律可循。
大部分是将之前的 CV_去掉就好了
err = norm(Mat(imagePoints[i]), Mat(imagePoints2), CV_L2);
CV_L2 改为 NORM_L2
cornerSubPix( viewGray, pointBuf, Size(11,11), Size(-1,-1), TermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 30, 0.1 ));
改为
// cornerSubPix( viewGray, pointBuf, Size(11,11),// Size(-1,-1), TermCriteria( TermCriteria::EPS+TermCriteria::COUNT, 30, 0.1 ));
但是为了校准的精度, 我将只使用自适应阈值,并将亚像素点算法去掉了
found = findChessboardCorners( view, s.boardSize, pointBuf, CALIB_CB_ADAPTIVE_THRESH /*| CALIB_CB_FAST_CHECK | CALIB_CB_NORMALIZE_IMAGE*/);
Mat viewGray; cvtColor(view, viewGray, COLOR_BGR2GRAY);// imshow("Gray",viewGray);// cornerSubPix( viewGray, pointBuf, Size(11,11),// Size(-1,-1), TermCriteria( TermCriteria::EPS+TermCriteria::COUNT, 30, 0.1 ));
至此可以完成相机校准了
得到YML用于图像去畸变。
先说这个去畸变函数,主要有两个调用方式。
1. 显示整张图去畸变的结果,边缘有黑边
initUndistortRectifyMap(cameraMatrix, distCoeffs, Mat(), getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, 1, imageSize, 0), imageSize, CV_16SC2, map1, map2);
2.将边缘裁剪后的最大图像,适合于三维重建坐标映射使用
initUndistortRectifyMap(cameraMatrix, distCoeffs, Mat(),Mat(),imageSize, CV_16SC2, map1, map2);
处理完map映射之后
remap(img, undistorted, map1, map2, INTER_LINEAR);
最后是三维坐标点重映射,图像坐标系->世界坐标系
//计算世界坐标系Point3d cal_worldpoint(Point3d img_point, Mat cameraMatrix){ Point3d world_point; double fx,fy,cx,cy,depth; fx = cameraMatrix.ptr<double>(0)[0]; fy = cameraMatrix.ptr<double>(1)[1]; cx = cameraMatrix.ptr<double>(0)[2]; cy = cameraMatrix.ptr<double>(1)[2]; depth = img_point.z; world_point.x = depth*(img_point.x - cx)/fx; world_point.y = depth*(img_point.y - cy)/fy; world_point.z = depth; return world_point;}
0 0
- opencv 3.0 相机校准 Calibration Calib
- OpenCV立体相机标定Stereo Calibration与校准检验Rectification详述
- OpenCV-CameraClabration 相机校准
- Camera Calibration 相机标定:Opencv应用方法
- opencv-相机校准和3D重建
- Camera Calibration 相机标定
- Camera Calibration 相机标定
- Camera calibration(相机校正)
- Camera Calibration 相机标定
- 相机标定 Camera Calibration
- 相机标定(Camera calibration)
- opencv的相机校准的圆格和棋盘格校准精度比较
- qnx学习笔记-qnx的电容触摸校准calib使用教程
- opencv calibration demo 阅读笔记
- Basic Sensor Calibration (1) -- 加速计传感器校准
- 8.MIL中相机标定(Calibration)
- 相机标定(Camera calibration)原理、步骤
- 单目相机标定(Camera Calibration)
- winform 解决界面闪动、提升加载速度
- make 并行编译结果的串行输出
- Linux top命令Cpu(s):ni 的解释
- 环境变量 $APPLCSF 是什么
- 对 Linux 新手非常有用的20个命令
- opencv 3.0 相机校准 Calibration Calib
- 用递归求i的平方,再求和
- linux虚拟文件系统VFS - 概述
- hdu 3635 Dragon Balls 【基础带权并查集】
- adroid中The connection to adb is down,问题和解决
- 关于c语言中的I/0函数
- iOS开发之实现图片自动切换(类似android画廊效果)
- PL/SQL 查询session杀不掉,强制终止线程的解决方法
- Spark实战01:单节点本地模式搭建Spark运行环境