opencv 棋盤查找findChessboardCorners

opencv 棋盤查找findChessboardCorners函數(shù)使用

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

函數(shù)形式

int cvFindChessboardCorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count=NULL, int flags=CV_CALIB_CB_ADAPTIVE_THRESH );

參數(shù)說(shuō)明

Image:

輸入的棋盤圖,必須是8位的灰度或者彩色圖像。

pattern_size:

棋盤圖中每行和每列角點(diǎn)的個(gè)數(shù)。

Corners:

檢測(cè)到的角點(diǎn)

corner_count:

輸出,角點(diǎn)的個(gè)數(shù)。如果不是NULL,函數(shù)將檢測(cè)到的角點(diǎn)的個(gè)數(shù)存儲(chǔ)于此變量。

Flags:

各種操作標(biāo)志,可以是0或者下面值的組合:

CV_CALIB_CB_ADAPTIVE_THRESH -使用自適應(yīng)閾值(通過(guò)平均圖像亮度計(jì)算得到)將圖像轉(zhuǎn)換為黑白圖,而不是一個(gè)固定的閾值。

CV_CALIB_CB_NORMALIZE_IMAGE -在利用固定閾值或者自適應(yīng)的閾值進(jìn)行二值化之前,先使用cvNormalizeHist來(lái)均衡化圖像亮度。

CV_CALIB_CB_FILTER_QUADS -使用其他的準(zhǔn)則(如輪廓面積,周長(zhǎng),方形形狀)來(lái)去除在輪廓檢測(cè)階段檢測(cè)到的錯(cuò)誤方塊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容