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

搜索关键字搜索到网站按照商业模式

搜索关键字搜索到网站,按照商业模式,神农架网站设计,wordpress免费资源SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接#xff0c;本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址#xff1a; SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址 SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践系列文章链接SLAM算法与工程实践系列专栏 前言SLAM算法与工程实践——相机篇传统相机使用2相机标定图像缩放和裁剪后后参数变化缩放resize后参数裁剪crop后参数 立体校正initUndistortRectifyMap()和remap()组合undistort()undistortPoints()组合比较 前言 这个系列的文章是分享SLAM相关技术算法的学习和工程实践 SLAM算法与工程实践——相机篇传统相机使用2 相机标定 参考 opencv 标定与畸变矫正 利用MatLabOpenCV进行相机畸变矫正 要matlab标定数据做双目相机矫正OpenCV C Matlab 双目相机标定 opencv应用 【OpenCV】摄像机标定畸变校正 标定的方式一般来说是通过拍摄多张标定板的图片标定板上有一些特殊的图案可以让计算机自动查找到这些图案的位置根据这些位置可以计算出外参和内参这是一个畸变和投影方程组求解过程根据相机镜头方程不一样至少4-8组标记位可以得到唯一解。 打开Matlab控制台输入 % 单目相机 cameraCalibrator % 双目相机 stereoCameraCalibrator选择左右视图的文件夹导入图片我这个标定板一小格为 30 mm 其中一组的左图被遮挡了不能用 双目标定界面 畸变参数总共有五个径向畸变3个 k 1 , k 2 , k 3 k_1,k_2,k_3 k1​,k2​,k3​和切向畸变2个( p 1 , p 2 p_1,p_2 p1​,p2​)。 径向畸变 x c o r r e c t e d x ( 1 k 1 r 2 k 2 r 4 k 3 r 6 ) y c o r r e c t e d y ( 1 k 1 r 2 k 2 r 4 k 3 r 6 ) \begin{array}{l}{{x_{\mathrm{corrected}}x(1k_{1}r^{2}k_{2}r^{4}k_{3}r^{6})}}\\{{y_{\mathrm{corrected}}y(1k_{1}r^{2}k_{2}r^{4}k_{3}r^{6})}}\end{array} xcorrected​x(1k1​r2k2​r4k3​r6)ycorrected​y(1k1​r2k2​r4k3​r6)​ 切向畸变 x c o r r e c t e d x [ 2 p 1 x y p 2 ( r 2 2 x 2 ) ] y c o r r e c t e d y [ p 1 ( r 2 2 y 2 ) 2 p 2 x y ] \begin{aligned}x_{\mathrm{corrected}}x[2p_{1}xyp_{2}(r^{2}2x^{2})]\\y_{\mathrm{corrected}}y[p_{1}(r^{2}2y^{2})2p_{2}xy]\end{aligned} xcorrected​ycorrected​​x[2p1​xyp2​(r22x2)]y[p1​(r22y2)2p2​xy]​ 以及在OpenCV中的畸变系数的排列这点一定要注意 k 1 k 2 p 1 p 2 k 3 k_1k_2p_1p_2k_3 k1​k2​p1​p2​k3​千万不要以为 k k k 是连着的。 D i s t o r t i o n c o e f f i c i e n t s ( k 1 k 2 p 1 p 2 k 3 ) \mathrm{Distortion}_{\mathrm{coefficients}}(\mathrm{k_{1}}\quad\mathrm{k_{2}}\quad\mathrm{p_{1}}\quad\mathrm{p_{2}}\quad\mathrm{k_{3}}) Distortioncoefficients​(k1​k2​p1​p2​k3​) 选择畸变参数calibrate 并且通过实验表明三个参数的时候由于 k 3 k_3 k3​ 所对应的非线性较为剧烈。估计的不好容易产生极大的扭曲所以我们在 MATLAB 中选择使用两参数并且选择错切和桶形畸变。 拖拉红线删除误差大的图像对使投影误差小于0.1像素最好。然后导出标定参数。 我这里标定的误差在0.4精度要求高时不能用 重新拍摄误差为0.08 精度要求不高的情况下0.13的误差也可以接受 可以显示校正后的图像 注意 在Matlab中选择畸变参数时有时需要选3参数的有时需要选2参数的例如我这里选3参数的图像校正后边缘变形了 选择2参数校正后就是正常图像 如果选择两参数的模型那么 k 3 k_3 k3​ 的值直接设为0 导出相机参数 误差 相机参数如下所示 相机外参 上图中的 RotationOfCamera2 和 TranslationOfCamera2 是右相机相对于左的旋转平移矩阵即R和T 校正畸变后的图像 相机内参 注意其中畸变系数向量在opencv中的顺序为 k1 k2 d1 d2 k3 opencv中内参的格式为 [ f x 0 c x 0 f y c y 0 0 1 ] \left[\begin{matrix} f_x0c_x\\ 0f_yc_y\\ 001 \end{matrix}\right] ​fx​00​0fy​0​cx​cy​1​ ​ 填入opencv前的中间处理 相机内参和旋转矩阵需要转置后填入 k1,k2,p1,p2,,k3 按照顺序填入畸变系数矩阵 distCoeff 平移矩阵直接填入 然后将参数写入配置文件中方便下次读取 图像缩放和裁剪后后参数变化 参考 图像缩放后相机内参如何变化的 图像Crop和Resize对于相机内参的影响 缩小或放大图像对应的相机内参如何变化 图像缩放对相机内外参矩阵的影响 缩放Resize与裁剪(Center、Random)Crop对相机内参IntrinsicMatrix的影响 缩放resize后参数 内参中的 f x , f y , c x , c y f_x,f_y,c_x,c_y fx​,fy​,cx​,cy​ 都会相应的变化 如果图像缩小为原来的一半那么 f x , f y , c x , c y f_x,f_y,c_x,c_y fx​,fy​,cx​,cy​ 都会缩小一半 外参的 R R R 和 T T T 都不会变化 裁剪crop后参数 裁剪后 c x , c y c_x,c_y cx​,cy​ 会相应的变小 而 f x , f y f_x,f_y fx​,fy​ 不变 立体校正 参考 【双目视觉】基于opencv双目校正以及双目测距 OpenCV 不同畸变校正函数的使用说明 立体校正的函数说明如下 void stereoRectify(InputArray cameraMatrix1, InputArray distCoeffs1,InputArray cameraMatrix2,InputArray distCoeffs2, Size imageSize,InputArray R, InputArray T,OutputArray R1, OutputArray R2, OutputArray P1,OutputArray P2, OutputArray Q, int flagsCALIB_ZERO_DISPARITY, double alpha-1,Size newImageSizeSize(), Rect* validPixROI10, Rect* validPixROI20 )/* cameraMatrix1-第一个摄像机的摄像机矩阵即左相机相机内参矩阵矩阵第三行格式应该为 0 0 1distCoeffs1-第一个摄像机的畸变向量cameraMatrix2-第一个摄像机的摄像机矩阵即右相机相机内参矩阵矩阵第三行格式应该为 0 0 1distCoeffs2-第二个摄像机的畸变向量imageSize-图像大小R- 相机之间的旋转矩阵这里R的意义是相机1通过变换R到达相机2的位姿T- 左相机到右相机的平移矩阵R1-输出矩阵第一个摄像机的校正变换矩阵旋转变换R2-输出矩阵第二个摄像机的校正变换矩阵旋转矩阵P1-输出矩阵第一个摄像机在新坐标系下的投影矩阵P2-输出矩阵第二个摄像机在想坐标系下的投影矩阵Q-4*4的深度差异映射矩阵flags-可选的标志有两种零或者CV_CALIB_ZERO_DISPARITY ,如果设置 CV_CALIB_ZERO_DISPARITY 的话 该函数会让两幅校正后的图像的主点有相同的像素坐标。否则该函数会水平或垂直的移动图像以使得其有用的范围最大alpha-拉伸参数。如果设置为负或忽略将不进行拉伸。如果设置为0那么校正后图像只有有效的部分会被显示没有黑色的部分 如果设置为1那么就会显示整个图像。设置为0-1之间的某个值其效果也居于两者之间。newImageSize-校正后的图像分辨率默认为原分辨率大小。validPixROI1-可选的输出参数Rect型数据。其内部的所有像素都有效validPixROI2-可选的输出参数Rect型数据。其内部的所有像素都有效initUndistortRectifyMap()和remap()组合 通过映射的方式逐个找出理想点在有畸变原图的位置。initUndistortRectifyMap()用于产生映射表remap()用于执行映射。 适用场景 当要进行多次畸变校正时使用initUndistortRectifyMap() remap()组合比较有效率只需要执行一次initUndistortRectifyMap()后面畸变校正只需要执行remap()即可 用法如下 //计算校正映射矩阵Mat map11, map12, map21, map22;initUndistortRectifyMap(cameraMatrixL, distCoeffsL, R1, P1, imageSize, CV_16SC2, map11, map12);initUndistortRectifyMap(cameraMatrixR, distCoeffsR, R2, P2, imageSize, CV_16SC2, map21, map22);for (int i 0; i imgLs.size(); i){//进行校正映射Mat img1r, img2r;imgLs[i];remap(imgLs[i], img1r, map11, map12, INTER_LINEAR);remap(imgRs[i], img2r, map21, map22, INTER_LINEAR);imwrite(./imgdata/imgleftRec to_string(i) .png, img1r);imwrite(./imgdata/imgrightRec to_string(i) .png, img2r);//拼接图像Mat result;hconcat(img1r, img2r, result);imshow(校正后结果 to_string(i), result);}undistort() 本质是initUndistortRectifyMap() remap()组合写在了一个函数里。方便只校正一次。 适用场景 当只需要执行一次畸变校正时用undistort()比用组合形式更方便一些。 undistortPoints() 适用场景 当只需要找出有畸变原图中的少数几个点经过畸变校正后的理想位置时使用undistortPoints()可达到目的。 组合比较 initUndistortRectifyMap() remap()组合和undistort()结果是一模一样的 initUndistortRectifyMap() remap()组合和undistortPoints()对特征点的校正结果大体一致在亚像素级别有略微差别
http://www.zqtcl.cn/news/342647/

相关文章:

  • 网页设计个人网站设计建设营销型网站多少钱
  • 做网站时联系我们制作模板西部数据网站空间
  • 合肥网站建设服务公司wordpress安装字体
  • 建设阅读网站的意义长沙微推广平台
  • 所有搜索引擎蜘蛛不来网站了怎么开发手机页面
  • 网站没域名广告传媒公司取名
  • 代理浏览网站跨境电商平台
  • 触摸终端软件门户网站wordpress标签不解析
  • wordpress企业产品类目怎么设置seo推广是做什么
  • 虚拟机可以做两个网站区块链插件wordpress
  • C2C电商网站重庆市渝快办官网
  • 青岛建设局网站首页青岛互联网企业排名
  • 网站文章怎么做分享qq做网站傻瓜
  • 自媒体专用网站免费产品推广文案100字
  • 阜阳专业网站建设上海南桥网站建设
  • 网站默认图片阳春做网站
  • 怎么自己做网站排名福州朝阳房产网站建设
  • 贵州建网站红动中国免费素材网
  • 公益网站建设婚庆网站开发的意义
  • 徐州网站建设案例南京设计网站
  • 培训网站欣赏网站开发进度管理表
  • 网站开发工程师考试平面设计实例网站
  • ftp更换网站备案密码如何登录添加网站
  • 钢球 东莞网站建设做网站用vue吗
  • 青岛网站建设制作公司制作视频软件哪个免费
  • 用flash做的网站欣赏承德住房和城乡建设局网站关闭了
  • 做网站引流的最佳方法施工企业高级工程师土建答辩
  • 成都优创智汇网站建设旅游网站网页设计代码
  • 郑州冬青街 网站建设网站seo技巧
  • 网站定制公司推荐外包公司怎么样