FindChessboardCorners是一個函式,可以用來尋找棋盤圖的內角點位置。
基本介紹
- 外文名: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 - 使用其他的準則(如輪廓面積,周長,方形形狀)來去除在輪廓檢測階段檢測到的錯誤方塊。
說明
函式cvFindChessboardCorners試圖確定輸入圖像是否是棋盤模式,並確定角點的位置。如果所有角點都被檢測到且它們都被以一定順序排布(一行一行地,每行從左到右),函式返回非零值,否則在函式不能發現所有角點或者記錄它們地情況下,函式返回0。例如一個正常地棋盤圖右8x8個方塊和7x7個內角點,內角點是黑色方塊相互聯通的位置。這個函式檢測到地坐標只是一個大約的值,如果要精確地確定它們的位置,可以使用函式cvFindCornerSubPix。