normalize函数_提取棋盘格角点函数解析
點擊上方“Qt學視覺”,選擇“星標”公眾號重磅干貨,第一時間送達
共同學習共同進步
1、如何查閱OpenCV官方說明文檔
????查閱地址:
????https://docs.opencv.org/4.3.0/
????我這里使用的是OpenCV4.3,所以我需要查閱的就是4.3版本的說明文檔
上圖就是OpenCV4.3官方文檔的主界面
在這里我們需要查閱的就是calib3d模塊,所以需要打開calib3d對應的內部說明介紹
逐步玩下拉,找到找棋盤格角點的函數
這里看到有好幾個函數,我們需要了解的便是OpenCV4.3新出的
findChessboardCornersSB提取角點的函數,這函數會比以前版本的提取角點更加精確
2、findChessboardCornersSB提取角點
官方文檔介紹
這里的參數主要有
image:源棋盤圖。它必須是8位灰度或彩色圖像。
patternSize:每個棋盤行和列的內角數?cv :: Size(columns,rows)
corners:輸出角點
flags:標志位,各種操作標志,可以為零或以下值的組合:
CALIB_CB_NORMALIZE_IMAGE?在檢測之前先使用equalizeHist來均衡化圖像gamma值
CALIB_CB_EXHAUSTIVE?進行詳盡的搜索以提高檢測率.
CALIB_CB_ACCURACY?由于混疊效應,使樣本輸入圖像上移以提高子像素精度.
CALIB_CB_LARGER允許檢測到的圖案大于patternSize
CALIB_CB_MARKER檢測到的圖案必須具有標記。如果需要精確的相機校準,則應使用此選項.
meta:檢測到的角的可選輸出數組(CV_8UC1,大小= cv::Size(列,行))。每個條目代表模式的一個角,并且可以具有以下值之一:
0 =?未附加元數據
1 =?黑色單元的左上角
2 =?白色單元的左上角
3 =?黑色單元格的左上角帶有白色標記點
4 =?白色單元格的左上角帶有黑色標記點(如果是標記,則為圖案原點,否則為第一個角)
?? ?該函數類似于findchessboardCorners,但使用本地化框式濾波器近似的變換對各種噪聲更魯棒,在較大的圖像上更快,并且能夠直接返回內部棋盤角的子像素位置。該方法基于論文[56]“用于校準的棋盤格角的精確檢測和定位”,表明返回的子像素位置比cornerSubPix返回的子像素位置更精確,從而可以對要求苛刻的應用程序進行精確的相機校準。
?? ?在這種情況下,將給出標志CALIB_CB_LARGER或CALIB_CB_MARKER,可以從可選的元數組中恢復結果。這兩個標志都有助于使用超出攝像機視場的校準圖案。這些超大尺寸的圖案允許更精確的校準,因為可以利用盡可能靠近圖像邊界的角。為了在所有圖像上保持一致的坐標系,可以使用可選的標記(請參見下圖)將板的原點移動到黑色圓圈所在的位置。
注意
?? ?該功能需要一塊白色邊框,其寬度與整個木板周圍的棋盤區域之一的寬度大致相同,以改善在各種環境中的檢測能力。另外,由于局部的transformation變換,將圓角用于位于板外部的場角是有益的。下圖說明了為檢測而優化的示例棋盤格。但是,也可以使用任何其他棋盤格。
總結
以上是生活随笔為你收集整理的normalize函数_提取棋盘格角点函数解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Drone 构建 Coding 项
- 下一篇: 计算机思维论文1万字,计算机思维学论文选