精华内容
下载资源
问答
  • 利用opencv棋盘格标定法对鱼眼图像校正分析

    万次阅读 多人点赞 2016-09-28 15:27:01
    利用opencv棋盘格标定法对鱼眼图像校正分析 一、开发环境 PC端、vs2013+opencv3.0、摄像头为淘宝购置的鱼眼摄像头外设+iphone6 二、镜头标定 1. 输入畸变的棋盘格图以及棋盘格的size(横纵坐标上的角点个数...
    利用opencv棋盘格标定法对鱼眼图像校正分析
    一、开发环境

    PC端、vs2013+opencv3.0、摄像头为淘宝购置的鱼眼摄像头外设+iphone6

     

    二、镜头标定

     

    1.  输入畸变的棋盘格图以及棋盘格的size(横纵坐标上的角点个数)

    该图片中棋盘格的size为(15,10)

     

    2.  提取棋盘格角点 findChessboardCorners

     

    §   二值化

    将输入的图像从color转化为gray的灰度图。

     

    §   CheckChessboard

     

    判断图片中是否有chessboard。具体方法是将输入图像经过腐蚀Erode和膨胀Dilate操作,分别检测黑色以及

    白色正方形格子的数量是否为棋盘格width/2*height/2,如果符合,那么就能简单的确认输入图片是一 张带有棋盘

    格的图像。

    §   GenerateQuads

    生成方格轮廓contour。对于输入图像,先做dilate膨胀操作。之后做findcontour操作,遍历每一个轮廓,如果

    该轮廓为方格并且其两个对边的长度都相近,那么将这个方格push到结果中,这些方格即是棋盘格中的小正方形。

    §   FindQuadNeighbors

    寻找方格的相邻方格。将前一步生成的方格输入,对于每一个方格,都遍历所有的方格,计算相邻的方格定点

    的距离,并且找到最近距离的方格,将该方格记做是当前方格的相邻方格。经过了膨胀之后原来相邻的点从一个变

    成了两个,现在将这两个点用一个点来替代,这个点就是膨胀之前的两个方格的公共交点。

    §   FindConnectedQuads

    寻找相互连接的方格。遍历所有的方格,如果该方格有相邻的方格并且它还没有被归类,则将这个方格归在一

    个新的group中,之后再考察当前方格的相邻方格,如果相邻方格的相邻方格没有被归类,那么再将新的方格加入

    group中,最终,group中包含了所有互相连接的方格。

    §   OrderFoundConnectedQuads

    将方格排序。将所有的相互连接的方格进行排序,考察每一个方格的相邻方格的个数,并且通过角点的坐标是

    否在一直线上,可以考察每一个方格位于哪一列哪一行,返回的方格序列以左上角的为首,顺时针排序。

    §   CleanFoundConnectedQuads

    剔除多余的方格。如果发现上一步排序后的方格数量超过了我们输入的棋盘格size的width*height,那么就需要

    将一些不符合要求的方格剔除。我们需要找到的是最小的方格,如果当前四个角点组成的方格可以用更小的四个角

    点组成的方格替代,那就将大的那个方格剔除。一直循环直到方格的数量等于我们提供的棋盘格size中方格的数量。

    §   CheckQuadGroup

    检查最终的方格。从一个只有一个相邻方格的方格开始检查,将所有的方格相连的角点位置进行一个更加精确

    的确定。

    §   CheckBoardMonotony

    检查方格是否水平平齐。对于每一行和每一列中所有的角点,考察该角点是否投影在该行或者该列的首位点所

    形成的线段上,以最终确保棋盘格方格提取的正确性。

    §   FindCornerSubPix

    找出亚像素角点。对于最终提取出来的方格,找到其亚像素的精确角点,返回这些角点。

    上图为标出角点之后的图像

     

    3.  鱼眼标定

    鱼眼相机的内参数采用Matx33d保存,具体矩阵形式如下:

    鱼眼相机的畸变系数是一个四维的向量,用Vec4d保存,具体形式如下:

                                {k1,k2,k3,k4}

    利用calibrate标定函数,即可以将上述的鱼眼相机内参数以及畸变系数都求出来。

    标定分为三个步骤:

        外部参数标定CalibrateExtrinsics

    优化Optimization

    确认Validation

     

    §  外部参数标定CalibrateExtrinsics

    首先初始化外部参数值InitExtrinsics,紧接着计算这些外部参数的值ComputeExtrinsicRefine(利用雅克比矩阵

    不断迭代运算,最终得到平移矩阵,旋转矩阵和旋转向量)。

    §  优化Optimization

    反复调用外部参数标定CalibrateExtrinsics,直到所有的参数都达到最优化。

    §  确认Validation

    利用不确定性评估EstimateUncertainties,得到误差参数,如果误差参数控制在一定的范围内,则确认通过。

    最终返回Matx33d表示鱼眼相机内参数和Vec4d表示畸变系数。

     

     

    三、畸变校正

    1.  初始化未畸变的校正图initUndistortRectifyMap。

     

    上述公式为透镜畸变前后图像坐标变换的公式。

         initUndistortRectifyMap完成了畸变前后的对应关系:

    1. 由图像坐标系反变换到相机坐标系中

    2. 然后,校正反变换R-1,一般无校正变换的相机,默认为单位矩阵

    3. 归一化,并进行相机透镜畸变处理

    4. 由相机坐标转换到图像坐标。

    由此,得到由图像模型到透镜畸变模型相互变换的对应关系u <->mapx, v <-> mapy。

        在相机标定过程中的Matx33d表示鱼眼相机内参数和Vec4d表示畸变系数与公式中对应。

    2.  校正remap

    利用上一步得到的mapx和mapy的对应关系,将鱼眼畸变图形通过remap校正回正常的图片。

     

     

    四、校正流程框图

     

    五、校正效果测试

     

     

    源码链接:https://share.weiyun.com/5YV5eSV

    展开全文
  • 在做红外双目相机标定测距实验时由于所拍摄的棋盘格图像不清晰,所以需要对棋盘格图像进行预处理。开发环境为基于visual studio 2013的opencv 预处理方法为二值化、图像归一、灰度调节等,目的是突出图像中的棋盘格...
  • Opencv 棋盘格标定板规格选型

    千次阅读 2018-12-22 14:16:38
    Opencv 棋盘格标定板 产品特性:  标定板 (Calibration Target) 在机器视觉、图像测量、摄影测量、三维重建等应用中,为校正镜头畸变;确定物理尺寸和像素间的换算关系;以及确定空间物体表面某点的三维几何...

    Opencv 棋盘格标定板

    产品特性:

         标定板 (Calibration Target) 在机器视觉、图像测量、摄影测量、三维重建等应用中,为校正镜头畸变;确定物理尺寸和像素间的换算关系;以及确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,需要建立相机成像的几何模型。

          桂庆光电标定板分为光学玻璃基板和陶瓷基板两种。玻璃基底的标定板广泛应用于透射式视觉测量系统,具有热膨胀系数小、精度高。陶瓷基底的标准板应用于前置光源,视觉测量系统的标定方案。热膨胀系数较较低,防腐蚀性好等特点 是避免反光的最好选择!

    兼容张正友的基本标定算法,兼容OpenCV标定算法,适合高校、研究机构研究使用

    外形尺寸:150*120mm

    格子尺寸:10*10 mm

    产品材质:  光学玻璃

    温馨提示:前置光源请选择陶瓷材质标定板,避免反光,背光源可选择光学玻璃材质!

    产品选型:

    产品型号图形尺寸格子尺寸阵列
    GQ-F30-126*261*126*26
    GQ-F63-0.550*500.5*0.5100*100
    GQ-F63-150*501*150*50
    GQ-F63-250*502*225*25
    GQ-F63-348*483*316*16
    GQ-F63-545*455*59*9
    GQ-F80-672*546*612*9
    GQ-F100-0.590*900.5*0.5180*180
    GQ-F100-390*903*330*30
    GQ-F150-10120*9010*1012*9
    以上是常用规格,可按照图纸要求订做

     

     产品图片:

    Opencv 棋盘格标定板

    展开全文
  • 利用OpenCV自带的棋盘格相机标定程序Demo,去掉其中必须要的输入和参数,将其封装为一个方便调用类。在此基础上给出了一个此类调用的控制台程序,含有标定示例图像。配置好opencv相应的路径即可直接运行。
  • OpenCV标定过程中使用的棋盘格标定板图片2010-11-05,
  • 机器视觉OpenCV标定过程中使用的标定板图片2010-08-25
  • 机器视觉OpenCV标定过程中使用的标定板图片2009-11-28
  • 转载: https://www.douban.com/note/541379633/?from=tag 这篇文章分析的不错。

    转载:

    https://www.douban.com/note/541379633/?from=tag

    这篇文章分析的不错。

    展开全文
  • https://www.douban.com/note/541379633/
    展开全文
  • find4QuadCornerSubpix(InputArray img, InputOutputArray corners, Size region_size); 这是精确地找亚像素的内角点的函数,第三个值说的是搜索窗口的尺寸,请问搜索窗口是啥啊,我看一些代码里面都是size(5,5),...
  • 原文: ...很简单,作者写的差不多对,不高兴改了。...自己也曾用matlab写过摄像机标定的整个过程,在图像中检测出棋盘的位置是整个标定过程的第一步,但一直不稳定,不知道opencv中采用什么算法检测棋盘的位
  • opencv制作棋盘格标定板
  • OpenCV相机标定棋盘格

    2020-12-01 13:59:07
    相机标定棋盘格图片,jpg&png格式,有OpenCV和MATLAB版本,棋盘形状有7*10方形和16*16正方形两种。打印后可以直接使用。
  • opencv生成棋盘格图像

    千次阅读 2020-05-25 18:34:05
    通常采用黑白棋盘格的方法,本文采用opencv库实现生成一张黑白棋盘格棋盘格的格子数可以设定,图片分辨率也可设定,图片格式可以自己修改。代码如下: #include<iostream> #include<opencv2\core\core....
  • 使用了OpenCvSharp资源开发包,在VS下做了一个棋盘格图像下的相机标定助手小Demo,显然,C#也可以用OpenCv了。这是一个比较好的案例,可以参考下。鄙人不才,也用它做了一个SFM三维重建的Demo,这里就不放了。 ...
  • opencv 制作棋盘格

    2019-06-05 10:32:22
    //10*7的棋盘格:每行有10个角点,每列有7个角点 //每个棋盘格定为:30*30个像素,图像大小为330*240 //10*7的棋盘格:每行有10个角点,每列有7个角点 //每个棋盘格定为:30*30个像素,图像大小为330*240 void ...
  • opencv生成棋盘格

    千次阅读 2014-05-09 15:09:04
    我们对摄像头进行标定时,常会用到棋盘格
  • 利用opencv生成棋盘格

    千次阅读 2018-12-11 11:43:16
    上谷歌找了一张9*6内角点棋盘格。格子大小为26mm。推荐去下面的链接下载原件打印 链接:https://cn.bing.com/images/search?view=detailV2&id=9A93857A1364BBC8A71E3DFD21B2E48915C9DA82&thid=OIP.H2...
  • opencv棋盘格

    千次阅读 2018-08-13 14:33:30
    #include &...opencv2\highgui\highgui.hpp&gt; using namespace std; using namespace cv; Size bord_w_h = { 9, 6 }; int longth = 126; int kong = 10; int main() { //int high...
  • 使用了OpenCvSharp资源开发包,在VS下做了一个棋盘格图像下的相机标定助手小Demo,显然,C#也可以用OpenCv了。这是一个比较好的案例,可以参考下。鄙人不才,也用它做了一个SFM三维重建的Demo,这里就不放了。 具体...
  • 需要重建三维信息的项目中,我们需要利用图像平面的特征点 + 特征点对应的深度值 + 内参和外参 ,利用“小孔成像”模型的三角关系,计算出该特征点的三维坐标。 或者径向畸变比较大的情况下,rgb图片都有比较大的...
  • opencv4中全新的棋盘格角点提取函数findChessboardCornersSB函数用法简介官方文档介绍opencv4.1安装配置环境findChessboardCornersSB提取棋盘格角点示例程序 简介 用opencv相机标定一直不如matlab标定稳定和精度高...
  • opencv棋盘格角点检测

    千次阅读 2019-12-10 16:05:06
    使用了棋盘格进行相机标定,在此之前首先要对棋盘格角点进行检测。opencv中封装了一个寻找角点的函数cv::findChessboardCorners()以及绘制棋盘角点函数cv::drawChessboardCorners()。下面对两函数进行总结介绍,并贴...
  • opencv4.0棋盘格标定c++

    2020-05-14 11:54:02
    ...opencv2/opencv.hpp> #include <iostream> #include <fstream> #include <string> #include <vector> using namespace cv; using namespace std; void m_cali..
  • 在已知内参矩阵和畸变矩阵的条件下可用cvFindExtrinsicCameraParams2快速和方便的求得相机外参 由于我现在没有相机在身边直接进行拍照,所以我在网上随便找了张棋盘格图片进行求取外参 结果算出来的旋转欧拉角是绕z-...
  • opencv标定用的棋盘格

    热门讨论 2013-08-02 14:32:03
    opencv标定用的棋盘格,直接打印即可,边长10mm

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,099
精华内容 839
关键字:

opencv棋盘格