2011-01-07 86 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编译开关,以便能够看看它怎么运作。