2012-09-16 59 views
1

與用棋盤校準單個相機2D圖像類似,我希望以像素爲單位確定棋盤(或單個正方形)的寬度/高度。以像素爲單位確定棋盤尺寸

我有一個垂直對準地面的攝像頭,確保與下面的表面完全平齊。我正在使用相機來確定幀之間的轉換(使用傅里葉相位相關成功實現),此時我的結果以像素爲單位返回轉換,但是我想使用類似於校準的技術,在該處我將相機移動到在地面上平坦的棋盤,以像素爲單位自動確定棋盤的大小,相對於我的圖像高度和寬度。

以毫米爲單位知道棋盤的大小後,我可以將像素單位轉換爲以毫米爲單位的真實世界單位,即1像素代表與地面以上相機高度成比例的距離。這將允許我將像素平移轉換爲毫米平移,每當我改變相機高度時重新校準。

實現此目的的推薦方法是什麼?當然,它必須比單相機2D校準更簡單。

回答

1

OpenCV可以爲您提供cv::findChessboardCorners()棋盤角落的位置。

我不確定透視變形是否會影響您的計算,但是如果棋盤完全對準相機下方,它應該可以工作。

+0

啊謝謝,我會給這個去。角的輸出數組,這是一個像素位置(x,y)?棋盤的最外邊緣,基本上找到四個角落? – Josh

+0

完美地工作,使用棋盤角落的座標來確定每個角落之間的像素距離。因此,以毫米爲單位知道拐角之間的距離可以將以像素爲單位的平移轉換爲以毫米爲單位的真實世界平移。 – Josh

+0

還要進行檢查以確保每個角之間的像素距離相對相等,以確保棋盤與攝像機完美匹配以進行校準。 – Josh

0

這只是一個想法,所以不要打我..但也許使用棋盤的自然對比?

「在某個時候,它會從明亮切換到黑暗像素,這應該發生(不記得棋盤上的列數)時間。」應該是一個可行的算法。

相關問題