OpenCV findChessboardCorners возвращает false после обновления с 4.8 до 4.12 (те же изображения, без изменений кода)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 OpenCV findChessboardCorners возвращает false после обновления с 4.8 до 4.12 (те же изображения, без изменений кода)

Сообщение Anonymous »

Недавно я обновил OpenCV в своем проекте на C++ с версии 4.8 до 4.12.
После обновления мои модульные тесты для калибровки камеры начали давать сбой, потому что
findChessboardCorners(...) теперь постоянно возвращает false для одних и тех же входных изображений и параметров.
Никаких изменений в коде не было — была обновлена только версия OpenCV.
Минимальный пример:

Код: Выделить всё

Mat img = imread("chessboard.jpg");
Size patternSize(13, 9);
vector
 corners;
int flags = CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FAST_CHECK | CV_LIB_CB_NORMALIZE_IMAGE;

bool found = findChessboardCorners(img, patternSize, corners, flags);

drawChessboardCorners(img, patternSize, corners, found);
imshow("img", img);
waitKey();
входное изображение:
Изображение

ожидаемый результат:
Изображение

В OpenCV 4.8 все углы найдены и нарисованы правильно, в OpenCV 4.12 обнаружено ложное значение.
Дополнительное наблюдение:
Если я изменю размер того же входного изображения до 266×200 пикселей перед вызовом findChessboardCorners, я снова получу истину, но обнаруженные углы будут гораздо менее точными (и непригодными для использования в моих целях). случай).
Мои вопросы:
  • Были ли критические изменения или более строгие критерии проверки, введенные в findChessboardCorners между OpenCV 4.8 и 4.12?
  • Есть ли способ получить больше диагностической информации (например, частичное обнаружение углов, коды ошибок или почему обнаружение не удалось)?


Подробнее здесь: https://stackoverflow.com/questions/797 ... o-4-12-sam
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»