opencv 棋盤查找findChessboardCorners函數使用


opencv 棋盤查找findChessboardCorners函數使用

        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 );

參數說明

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 -使用其他的准則(如輪廓面積,周長,方形形狀)來去除在輪廓檢測階段檢測到的錯誤方塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM