当前位置: 首页 > wzjs >正文

网站备案代理wordpress 宠物模板

网站备案代理,wordpress 宠物模板,网软志成免费部队网站源码下载,市场调研公司排名这里介绍下基于棋盘格的相机参数标定。接上文说到的《【OpenCV】相机标定之棋盘格角点检测与绘制》,可以获取图像中的角点信息,再结合世界坐标点,就可以完成相机标定,将相机的图像坐标与世界坐标之间的转换关系建立起来&#xff0…

这里介绍下基于棋盘格的相机参数标定。接上文说到的《【OpenCV】相机标定之棋盘格角点检测与绘制》,可以获取图像中的角点信息,再结合世界坐标点,就可以完成相机标定,将相机的图像坐标与世界坐标之间的转换关系建立起来,从而实现相机的三维重建、姿态估计等应用。
在这里插入图片描述

首先介绍下calibrateCamera() 函数
**calibrateCamera() **是 OpenCV 中用于相机标定的核心函数,它通过多张从不同角度拍摄的棋盘格图像,使用已知的物体的3D坐标和对应的图像点,来计算相机的内参(如焦距、主点位置等)和外参(如相机的旋转和平移向量)和畸变系数。

函数原型

double cv::calibrateCamera(InputArrayOfArrays objectPoints,InputArrayOfArrays imagePoints,Size imageSize,InputOutputArray cameraMatrix,InputOutputArray distCoeffs,OutputArrayOfArrays rvecs,OutputArrayOfArrays tvecs,int flags = 0,TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)
)

参数说明
objectPoints: 世界坐标系中的3D点集,通常使用棋盘格的角点坐标(z=0)
类型: vector<vector>
每个元素是棋盘格角点的3D坐标

imagePoints: 图像中对应的2D点集
类型: vector<vector>
每个元素是检测到的棋盘格角点的像素坐标

imageSize: 图像尺寸(宽度,高度)

cameraMatrix: 输出相机内参矩阵(3×3)

[fx  0 cx]
[ 0 fy cy]
[ 0  0  1]

distCoeffs: 输出畸变系数向量(通常为5个元素: k1, k2, p1, p2, k3)。径向畸变和切向畸变。如果没有畸变,可以设置为 None 或者是一个全零的数组。

rvecs: 输出每幅图像的旋转向量(Rodrigues表示)。旋转向量与旋转矩阵是等效的,但旋转向量更为紧凑。通过它,可以了解相机相对于标定板的旋转情况。旋转向量是轴角表示,方向表示旋转轴,长度表示旋转角度(弧度)

tvecs: 输出每幅图像的平移向量。平移向量描述了标定板在相机坐标系中的位置。

flags: 标定标志位(可选):
CALIB_USE_INTRINSIC_GUESS: 使用输入的cameraMatrix作为初始值
CALIB_FIX_PRINCIPAL_POINT: 固定主点
CALIB_FIX_ASPECT_RATIO: 固定fx/fy比值
CALIB_ZERO_TANGENT_DIST: 设置切向畸变系数p1,p2为零
CALIB_FIX_K1,…,CALIB_FIX_K6: 固定对应的径向畸变系数
CALIB_RATIONAL_MODEL: 使用有理函数模型计算畸变
//下面几个用的少
CALIB_THIN_PRISM_MODEL系数s1、s2、s3和s4已启用。为了提供向后兼容性,应明确指定此额外标志,使校准函数使用薄棱镜模型并返回12个或更多系数。
CALIB_FIX_S1_S2_S3_S4在优化过程中,薄棱镜的畸变系数保持不变。如果设置了CALIB_USE_INTRINSIC_GUESS,则使用提供的distCoeffs矩阵中的系数。否则,它将设置为0。
CALIB_TILTED_MODEL系数tauX和tauY已启用。为了提供向后兼容性,应明确指定此额外标志,使校准函数使用倾斜的传感器模型并返回14个系数。
CALIB_FIX_TAUX_TAUY在优化过程中,倾斜传感器模型的系数保持不变。如果设置了CALIB_USE_INTRINSIC_GUESS,则使用提供的distCoeffs矩阵中的系数。否则,它将设置为0。

criteria: 迭代优化终止条件

返回值
返回所有图像的重投影误差的RMS(均方根)值,表示标定的精度。

使用示例

#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main() {// 准备棋盘格角点的世界坐标(假设棋盘格在z=0平面)vector<vector<Point3f>> objectPoints;vector<vector<Point2f>> imagePoints;// 假设我们有多张标定图像vector<String> imageNames;glob("calibration_images/*.jpg", imageNames);// 棋盘格尺寸(内角点数量)Size boardSize(9, 6);float squareSize = 1.0f;  // 棋盘格方块的物理尺寸(单位任意)// 生成世界坐标点vector<Point3f> obj;for(int i = 0; i < boardSize.height; i++)for(int j = 0; j < boardSize.width; j++)obj.push_back(Point3f(j*squareSize, i*squareSize, 0));// 检测每张图像的角点for(size_t i = 0; i < imageNames.size(); i++) {Mat img = imread(imageNames[i], IMREAD_GRAYSCALE);vector<Point2f> corners;bool found = findChessboardCorners(img, boardSize, corners);if(found) {// 亚像素精确化cornerSubPix(img, corners, Size(11,11), Size(-1,-1),TermCriteria(TermCriteria::EPS+TermCriteria::COUNT, 30, 0.1));imagePoints.push_back(corners);objectPoints.push_back(obj);}}// 相机标定Mat cameraMatrix, distCoeffs;vector<Mat> rvecs, tvecs;Size imageSize = imread(imageNames[0]).size();  double rms = calibrateCamera(objectPoints, imagePoints, imageSize,cameraMatrix, distCoeffs, rvecs, tvecs);cout << "重投影误差: " << rms << endl;cout << "相机内参:\n" << cameraMatrix << endl;cout << "畸变系数: " << distCoeffs.t() << endl;return 0;
}

注意事项
1、通常需要15-20张不同角度的棋盘格图像才能获得良好的标定结果
2、棋盘格应覆盖图像的各个区域(中心、边缘、角落)
3、棋盘格应有不同的倾斜角度
4、重投影误差(RMS)越小越好,一般应小于0.5像素
5、标定完成后,可以使用undistort()函数校正图像畸变


文章转载自:

http://ctQ7GIEJ.nssjy.cn
http://IwWmhZrT.nssjy.cn
http://YXEXD5OB.nssjy.cn
http://raO07BID.nssjy.cn
http://uZvH1poM.nssjy.cn
http://SrpwxZBW.nssjy.cn
http://CDXuTTEB.nssjy.cn
http://yCExCJqU.nssjy.cn
http://xAhxNYl9.nssjy.cn
http://z2Q5wt42.nssjy.cn
http://xlzDCXPa.nssjy.cn
http://FNBbST4E.nssjy.cn
http://7x8giOnb.nssjy.cn
http://yVzNMO4e.nssjy.cn
http://guaU5rc1.nssjy.cn
http://36Wq0VNs.nssjy.cn
http://bsKzEZhG.nssjy.cn
http://QWeAsr5K.nssjy.cn
http://FPAGCpge.nssjy.cn
http://zWf4uc0t.nssjy.cn
http://XShLcial.nssjy.cn
http://ZClfJpkm.nssjy.cn
http://AkeZCG7Q.nssjy.cn
http://hV75ftDr.nssjy.cn
http://cTcUjD4S.nssjy.cn
http://bmfAMlxQ.nssjy.cn
http://oWSh5fId.nssjy.cn
http://Jwul2Of0.nssjy.cn
http://RAlPgNE5.nssjy.cn
http://qy7hBbpZ.nssjy.cn
http://www.dtcms.com/wzjs/700222.html

相关文章:

  • 资阳网站设计为什么不自己做购物网站
  • 四川网站营销seo什么价格咨询公司排行榜
  • 东莞市品牌网站建设价格wordpress 响应式教程
  • 长沙网站制作建设wordpress配置资源
  • 网站如何做sem推广iis网站权限
  • 广西网站建设银行免费申请qq号注册官网
  • 说明怎样做才能通过互联网访问你制作的网站珠海专业网站建设公司
  • 网站建设如何推广企业管理咨询自考
  • 哪里有网站开发公司门户网站后台建设模块
  • 织梦网站更新肉山谷英雄传说新手任务登录英文网站怎么做
  • 广州市增城区建设局网站网站开发质保金
  • 网站如何引导页如何做网页游戏代理
  • 做网站贵么南京小程序制作公司
  • 网站怎么换模板企业邮箱
  • 网站建设和网页设计贵安新区住房和城乡建设厅网站
  • 做经营行网站需要什么app网站开发哪家好
  • 东莞如何编写网站建设做网站哪个简单点
  • 平台制作专业网站制作网站开发原型模板
  • 一般做推广网站的客户需求仕什么网站后台 教程
  • 简单班级网站模板地方资讯网站源码
  • 0基础学网站设计深圳网站设计九曲网站建设
  • 做网站营业范围wordpress获取当前页面链接地址
  • 河南省建设工程信息网站杭州建设招聘信息网站
  • 湘潭建设网站北京软件开发公司滕迎江
  • 模板网站的域名是什么意思wordpress 多梦
  • 如何创建网站?域名购买备案
  • 网站运营推广该如何做网页制作教程步骤视频讲解
  • 网站开发花费活动推广文案
  • 国外经典设计网站传奇霸业网页游戏开服
  • 新品推广活动方案seo权威入门教程