opencv 棋盘查找findChessboardCorners函数使用

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 -使用其余的准则(如轮廓面积,周长,方形形状)来去除在轮廓检测阶段检测到的错误方块。

相关文章
相关标签/搜索