Не удалось найти ChessboardCorners на следующей картинке - PullRequest
0 голосов
/ 08 ноября 2019

Я попробовал следующий код, чтобы найти углы квадратных прямоугольников на прилагаемой картинке шахматной доски, но, к сожалению, не смог ее найти. Подскажите, пожалуйста, что я могу сделать, чтобы обнаружить углы шахматной доски в этом случае ... Большое спасибо ..:)

int main() {
cv::Mat imgOriginal;        // input image
Size  boardSizeTopChessBoard;
boardSizeTopChessBoard.width = 144;  
boardSizeTopChessBoard.height = 3;
vector<Point2f> pointBufTopChessBoard;
bool topChessBoardCornersFound = false;

imgOriginal = cv::imread("topChessBoard.jpg");         
imshow("Original Image ", imgOriginal);

topChessBoardCornersFound = findChessboardCornersSB(imgOriginal, boardSizeTopChessBoard, pointBufTopChessBoard, 0);


if (topChessBoardCornersFound)
{
    cout << "Corners found in top chess baord" << endl;
}
else
{
    cout << "Corners not found in top chess baord" << endl;
}
waitKey(0);
return(0);

} Test Picture

1 Ответ

0 голосов
/ 08 ноября 2019

Существует ряд причин, по которым это не работает.

Прежде всего, изображение имеет небольшое разрешение с таким количеством углов. Поэтому слишком сложно их обнаружить.

Во-вторых, ограничение по краям изображения ниже, что делает его более сложным. Более темное изображение труднее обнаружить.

И, наконец, попробуйте сделать более четкое изображение. Это немного размыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...