1

8x9 のチェス盤があり、関数 cv::findChessboardCorners が問題なくそれを認識したとします。私の質問は、なぜ関数が同じ画像で小さなサイズのチェス盤を認識しないのかということです。for ループで試し、サイズをデクリメントしました。関数は、たとえば 5x4 と 4x5 のチェス盤を認識できますが、6x7 は認識しませんか? なぜそれが起こっているのですか?

私はすでにプログラムのデバッグを試みましたが、calibinit.hppで実際に何が起こっているのか理解できませんでした。

前もって感謝します !

4

2 に答える 2

1

主な問題は、大きなチェス盤の中に別の小さなチェス盤を簡単に見つけることができるため、あいまいさが生じることだと思います。

チェス盤で構成される画像でコーナー検出を行うと、コーナーの規則的なグリッドが見つかります。次にfindChessboardCorners、指定されたサイズ (x,y) のチェス盤に非常によく似た構造体を見つける必要があります。コーナー検出によって検出された通常のグリッドにチェス盤をマッピングするさまざまな可能性を評価しますが、これらの評価は非常に似ています。そのため、探しているのが THE CHESSBOARD であるかどうかを判断するのは困難です。

于 2013-08-15T11:39:28.077 に答える
0

認識されたボードには明るい境界線が必要なためです。

于 2013-08-15T10:32:57.677 に答える