2011-01-07 89 views
4

所以,我最初認爲在圖像中找到一個棋盤應該是微不足道的,因爲它是一個容易定義的對象。然而,它不是那麼容易,我想知道是否有人知道棋盤發現者「cvFindChessboardCorners」如何在OpenCV中工作。我曾嘗試使用Google搜索,但很容易找到算法。即時猜測也許以下:在圖像中尋找一個棋盤

1)二值化
2)打開和關閉,以消除小簇

A)
2)求出哈里斯角
3)創建在圖像
所有點之間的距離矩陣 4)...?

B)
2)求出hough變換
3)所有顯著線被用於它們相交,其中檢查。如果4條或更多條線相交於一點,則這些線是棋盤的一部分。這包括無窮遠處的點。
4)?

任何人都知道嗎?

回答

4

這是相當複雜的... :)如果你想確切地知道,OpenCV的來源是看的地方 - 在OpenCV中2.2是在modules/calib3d/src/calibinit.cpp線219它也有一個DEBUG_CHESSBOARD編譯開關,以便能夠看看它怎麼運作。