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

网站关闭流程怎么开电商店铺

网站关闭流程,怎么开电商店铺,虚拟空间软件,wordpress滑动解锁代码畸变矫正是上一篇博文的遗留问题#xff0c;当畸变系数和内外参数矩阵标定完成后#xff0c;就应该进行畸变的矫正#xff0c;以达到消除畸变的目的#xff0c;此其一。 在该系列第一部分的博文中介绍的立体成像原理中提到#xff0c;要通过两幅图像估计物点的深度信息当畸变系数和内外参数矩阵标定完成后就应该进行畸变的矫正以达到消除畸变的目的此其一。 在该系列第一部分的博文中介绍的立体成像原理中提到要通过两幅图像估计物点的深度信息就必须在两幅图像中准确的匹配到同一物点这样才能根据该物点在两幅图像中的位置关系计算物体深度。为了降低匹配的计算量两个摄像头的成像平面应处于同一平面。但是单单依靠严格的摆放摄像头来达到这个目的显然有些困难。立体校正就是利用几何图形变换(Geometric Image Transformation)关系使得原先不满足上述位置关系的两幅图像满足该条件此其二。 数学原理 畸变矫正(compensate lens distortion) 畸变矫正的方法就是用上一篇博文给出的公式对像素位置进行重新映射。这里重新写出重新映射的公式。 先矫正径向畸变 再矫正切向畸变 立体矫正(stereo rectify) 立体矫正能够有效降低立体匹配的计算量立体矫正的具体作用见下图 立体矫正前 立体矫正后 立体矫正的算法原理没有详细了解此处从略。 OpenCV相关函数说明 畸变矫正函数 undistort() undistort() 是独立的一个畸变矫正函数一次性可以完成映射矩阵的求解和重新映射。下面我们还会看到把这两步分开来做的函数。 调用方法 src-输入未经过矫正的图像dst-经过矫正后输出的图像cameraMatrix-标定而得到的摄像机矩阵distCoeffs-标定得到的摄像机畸变矩阵newCameraMatrix-输入矫正后的摄像机矩阵可以省略 立体标定函数 stereoCalibrate() stereoCalibrate() 是用来标定一个立体摄像头的也就是同时标定两个摄像头。标定的结果除了能够求出两个摄像头的内外参数矩阵跟能够得出两个摄像头的位置关系R,T。 调用方法 double stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1,InputArrayOfArrays imagePoints2, InputOutputArray cameraMatrix1,InputOutputArray distCoeffs1, InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2, Size imageSize, OutputArray R,OutputArray T, OutputArray E, OutputArray F, TermCriteria criteriaTermCriteria(TermCriteria::COUNTTermCriteria::EPS, 30, 1e-6), intflagsCALIB_FIX_INTRINSIC ) objectPoints- vectorpoint3f 型的数据结构存储标定角点在世界坐标系中的位置imagePoints1- vectorvectorpoint2f 型的数据结构存储标定角点在第一个摄像机下的投影后的亚像素坐标imagePoints2- vectorvectorpoint2f 型的数据结构存储标定角点在第二个摄像机下的投影后的亚像素坐标cameraMatrix1-输入/输出型的第一个摄像机的相机矩阵。如果CV_CALIB_USE_INTRINSIC_GUESS , CV_CALIB_FIX_ASPECT_RATIO ,CV_CALIB_FIX_INTRINSIC , or CV_CALIB_FIX_FOCAL_LENGTH其中的一个或多个标志被设置该摄像机矩阵的一些或全部参数需要被初始化distCoeffs1-第一个摄像机的输入/输出型畸变向量。根据矫正模型的不同输出向量长度由标志决定cameraMatrix2-输入/输出型的第二个摄像机的相机矩阵。参数意义同第一个相机矩阵相似distCoeffs2-第一个摄像机的输入/输出型畸变向量。根据矫正模型的不同输出向量长度由标志决定imageSize-图像的大小R-输出型第一和第二个摄像机之间的旋转矩阵T-输出型第一和第二个摄像机之间的平移矩阵E-输出型基本矩阵F-输出型基础矩阵term_crit-迭代优化的终止条件 flag-  CV_CALIB_FIX_INTRINSIC 如果该标志被设置那么就会固定输入的cameraMatrix和distCoeffs不变只求解 $R,T,E,F $. CV_CALIB_USE_INTRINSIC_GUESS 根据用户提供的cameraMatrix和distCoeffs为初始值开始迭代 CV_CALIB_FIX_PRINCIPAL_POINT 迭代过程中不会改变主点的位置 CV_CALIB_FIX_FOCAL_LENGTH 迭代过程中不会改变焦距 CV_CALIB_SAME_FOCAL_LENGTH 强制保持两个摄像机的焦距相同 CV_CALIB_ZERO_TANGENT_DIST 切向畸变保持为零 CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6 迭代过程中不改变相应的值。如果设置了 CV_CALIB_USE_INTRINSIC_GUESS 将会使用用户提供的初始值否则设置为零 CV_CALIB_RATIONAL_MODEL 畸变模型的选择如果设置了该参数将会使用更精确的畸变模型distCoeffs的长度就会变成8 立体校正函数 stereoRectify() stereoRectify() 的作用是为每个摄像头计算立体校正的映射矩阵。所以其运行结果并不是直接将图片进行立体矫正而是得出进行立体矫正所需要的映射矩阵。 调用方法 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-第一个摄像机的摄像机矩阵distCoeffs1-第一个摄像机的畸变向量cameraMatrix2-第二个摄像机的摄像机矩阵distCoeffs1-第二个摄像机的畸变向量imageSize-图像大小R- stereoCalibrate() 求得的R矩阵T- stereoCalibrate() 求得的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()  该函数功能是计算畸变矫正和立体校正的映射变换。 调用方法 void initUndistortRectifyMap(InputArray cameraMatrix, InputArray distCoeffs, InputArray R,InputArray newCameraMatrix, Size size, int m1type, OutputArray map1, OutputArray map2) cameraMatrix-摄像机参数矩阵distCoeffs-畸变参数矩阵R- stereoCalibrate() 求得的R矩阵newCameraMatrix-矫正后的摄像机矩阵可省略Size-没有矫正图像的分辨率m1type-第一个输出映射的数据类型可以为 CV_32FC1  或  CV_16SC2 map1-输出的第一个映射变换map2-输出的第二个映射变换 几何变换函数 remap()  调用方法 void remap(InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation,int borderModeBORDER_CONSTANT, const Scalar borderValueScalar()) src-原图像dst-几何变换后的图像map1-第一个映射无论是点(x,y)或者单纯x的值都需要是CV_16SC2 ,CV_32FC1 , 或 CV_32FC2类型map2-第二个映射y需要是CV_16UC1 , CV_32FC1类型。或者当map1是点(x,y)时map2为空。interpolation-插值方法但是不支持最近邻插值剩下两个我也没看懂但是一般示例程序中不会设置 基于OpenCV的仿真 仿真程序View Code 子函数calibrate()和calcChessboardCorners()分别是用来表达相机和计算objectPoints的。函数体如下 View Code 1 static void calcChessboardCorners(Size boardSize, float squareSize, vectorPoint3f corners) 2 { 3 corners.resize(0); 4 for (int i 0; i boardSize.height; i) //height和width位置不能颠倒 5 for (int j 0; j boardSize.width; j) 6 { 7 corners.push_back(Point3f(j*squareSize, i*squareSize, 0)); 8 } 9 } 仿真结果分类: Computer Vision,OpenCV,数字图像处理 标签: opencv, Computer Vision
http://www.sadfv.cn/news/226480/

相关文章:

  • 网站备案 域名过期摄影师网站制作
  • 网站建设公司应该怎么转型俄罗斯的最新军事新闻
  • 工作表格excel下载国内seo公司哪家最好
  • asp.net网站开发教程下载网站开发能进无形资产吗
  • 和一起做网店差不多的网站.net简单网站开发视频教程
  • 南京网站推广企业网站的规划与设计
  • 网站建设方案及报微信注册小程序收费吗
  • 网站平台建设公司中信建设有限责任公司客户
  • 华威桥网站建设在一家传媒公司做网站编辑 如何
  • 北京欢迎你网站建设网站制作 青岛
  • win7 iis发布网站教程宁德网页设计
  • 做网站用花生壳哪个版本自己的电脑可以做网站服务器
  • 免费大气网站模板河南周口东宇网站建设
  • 网站建设做的好处徐州关键词优化如何
  • 剑网三奇遇查询网站怎么做邯郸建移动网站费用
  • 网站建设 犀牛北京建设信源网站 怎么打不开
  • 建一个商城网站多少钱重庆公司大学派斯学院
  • 怎样建立自己的公众号seo关键词优化公司
  • 2019年云南建设银行招聘网站网站设置价格错误不愿意发货
  • 购物网站 wordpress 英文模板wordpress怎么看展现量
  • 网站建设怎么添加图片上去酒吧网站模板
  • 番禺营销型网站建设网站的色彩搭配
  • 温州个人网站建设学生个人博客网站模板
  • 公司网站服务商处理营销型网站建设策划的几个误区
  • wordpress建站 东莞网站建设测评报告
  • 做wd网站实训报告总结seo软件排行榜前十名
  • 新乡专业网站建设公司网站建设模式有哪些内容
  • 做网站有限公司做网站编辑需要经验吗
  • 清河哪里做网站最新网站建设的模板
  • 厦门网站改版做百度网站那家好