opencv 棋盘查找findChessboardCorners函数使用java
Size size=new Size(6,9); MatOfPoint2f pos=new MatOfPoint2f(); boolean chessboardCorners = Calib3d.findChessboardCorners(mat, size, pos, Calib3d.CALIB_CB_ADAPTIVE_THRESH|Calib3d.CALIB_CB_NORMALIZE_IMAGE); if (chessboardCorners) { Calib3d.drawChessboardCorners(mat, size, pos, true); }else { Log.i(TAG, "handle: jason error"); }
函数形式函数
int cvFindChessboardCorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count=NULL, int flags=CV_CALIB_CB_ADAPTIVE_THRESH );3d
参数说明code
Image:orm
输入的棋盘图,必须是8位的灰度或者彩色图像。opencv
pattern_size:class
棋盘图中每行和每列角点的个数。变量
Corners:自适应
检测到的角点im
corner_count:
输出,角点的个数。若是不是NULL,函数将检测到的角点的个数存储于此变量。
Flags:
各类操做标志,能够是0或者下面值的组合:
CV_CALIB_CB_ADAPTIVE_THRESH -使用自适应阈值(经过平均图像亮度计算获得)将图像转换为黑白图,而不是一个固定的阈值。
CV_CALIB_CB_NORMALIZE_IMAGE -在利用固定阈值或者自适应的阈值进行二值化以前,先使用cvNormalizeHist来均衡化图像亮度。
CV_CALIB_CB_FILTER_QUADS -使用其余的准则(如轮廓面积,周长,方形形状)来去除在轮廓检测阶段检测到的错误方块。