Функция OpenCV findChessboardCorners не работает в (по-видимому) простом сценарии

Я пытаюсь найти углы шахматной доски, используя OpenCV.

Образ ям использует две шахматные доски, но яЯ заинтересован только в подобласти одного из них. На следующем изображении показано исходное изображение.

Используя GIMP, яЗатем мы выбрали область интереса, и яустановите все остальные пиксели в значение по умолчанию.

У меня нетна самом деле обрезать изображение, потому что яЯ уже откалибровал камеру, используя этот размер изображения, и я неЯ не хочу это менять. Операция должна быть эквивалентна изменению значений в матрице изображения, но я предпочел сделать это с GIMP. Это однократный эксперимент, и быстрее выполнить эту операцию с помощью графического инструмента вместо использования кода.

Полученное изображение содержит шахматную доску с углами 24х5, но функция findChessboardCorners не может ничего найти.

Вот код Python, который ям с помощью:

>>> img = cv2.imread('C:\\Path\\To\\C4-Cropped.png', 0)
>>> cv2.findChessboardCorners(img, (24, 5))
(False, None)
>>> cv2.findChessboardCorners(img, (5, 24))
(False, None)

Я также пытался установить адаптивный порог, но он все еще не работает

>>> cv2.findChessboardCorners(img, (24, 5), flags=cv2.cv.CV_CALIB_CB_ADAPTIVE_THRESH)
(False, None)

Это кажется действительно странным. Я использовал эту функцию OpenCV много раз в прошлом, и она всегда работала, даже с изображениями, которые выглядели намного болеесложно чем этот. Освещение области не является однородным, но функция должна быть достаточно устойчивой, чтобы справиться с этим.

Есть ли проблемы сискусственный изображение создано с помощью GIMP? Как я могу найти углы?

Любое предложение будет с благодарностью.

Ответы на вопрос(5)

Ваш ответ на вопрос