首页 > 其他 > 详细

计算机视觉——找棋盘格角点

时间:2021-05-24 00:50:18      阅读:122      评论:0      收藏:0      [点我收藏+]

本例程是相机标定的第一步,通过findChessboardCorners找到棋盘上的所有角点,然后再通过调用cornerSubPix亚像素精确化,找到精确的角点坐标,然后调用circle画出角点位置。

主要函数介绍:
findChessboardCorners()
功能:寻找棋盘图的内角点位置
函数形式:int cvFindChessboardCorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count=NULL, int flags=CV_CALIB_CB_ADAPTIVE_THRESH );
参数:
image:输入的棋盘图,必须是8位的灰度或者彩色图像。
pattern_size:棋盘图中每行和每列角点的个数
corners:检测到的角点
corner_count:输出,角点的个数。如果不是NULL,函数将检测到的角点的个数存储于此变量
flags:各种操作标志,可以是0或者下面值的组合:
CV_CALIB_CB_ADAPTIVE_THRESH - 使用自适应阈值(通过平均图像亮度计算得到)将图像转换为黑白图,而不是一个固定的阈值。
CV_CALIB_CB_NORMALIZE_IMAGE - 在利用固定阈值或者自适应的阈值进行二值化之前,先使用cvNormalizeHist来均衡化图像亮度。
CV_CALIB_CB_FILTER_QUADS - 使用其他的准则(如轮廓面积,周长,方形形状)来去除在轮廓检测阶段检测到的错误方块
返回值:如果找到角点返回1,没有找到返回0;
cornerSubPix
功能:在角点检测中精确化角点位置
函数原型:void cornerSubPix(InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria);
C: void cvFindCornerSubPix(const CvArr* image, CvPoint2D32f* corners, int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria);
参数
image:输入图像
corners:输入角点的初始坐标以及精准化后的坐标用于输出
winSize:搜索窗口边长的一半,例如如果winSize=Size(5,5),则一个大小为:的搜索窗口将被使用。
zeroZone:搜索区域中间的dead region边长的一半,有时用于避免自相关矩阵的奇异性。如果值设为(-1,-1)则表示没有这个区域。
criteria:角点精准化迭代过程的终止条件。也就是当迭代次数超过criteria.maxCount,或者角点位置变化小于criteria.epsilon时,停止迭代过程。
CvTermCriteria 类:迭代算法的终止准则

原型:
`typedef struct CvTermCriteria
{
int type; /* CV_TERMCRIT_ITER 和CV_TERMCRIT_EPS二值之一,或者二者的组合 */
int max_iter; /* 最大迭代次数 */
double epsilon; /* 结果的精确性 */
宏定义:
CV_TERMCRIT_ITER:代终止条件为达到最大迭代次数终止
CV_TERMCRIT_EPS:迭代到阈值终止
技术分享图片

 

 

 技术分享图片技术分享图片

 

 技术分享图片技术分享图片

 

 

 技术分享图片

 

 

我在前几天的实验中,总是检测不到角点,很郁闷。来来回回测了七八组数据,都没有第一次测量的那种效果。因为标定板的原因,要贴掉一部分的标定板才可以使用。第一次做的实验图片有点暗,所以想把图片再重新拍一下,就随便贴了一下,这一随便拍就出现问题了,导致角点提取不出来,然后又以为是曝光问题,图片太暗了,导致图片角点提取不出来,又去调整曝光,拍了几组照片还是找不到角点,后来感觉是透明胶带的问题,改用纸胶带,用纸胶带可以去除透明胶带的一些问题,比如透明胶带放时间长了,拉出来透明胶带边缘有些黑边,也会影响后面的角点提取,用新的透明胶带,好好贴,应该也没啥问题。纸透明一点不会影响角点的提取,只要被纸覆盖住了,基本就不会被检测到角点。

 

计算机视觉——找棋盘格角点

原文:https://www.cnblogs.com/BigSamllKing/p/14802541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!