#opencv
#opencv
Вопрос:
Я выполняю калибровку OpenCV, но результат без искажений не соответствует моим ожиданиям. Оно выглядит более искаженным, чем исходное изображение. Я использую только одно калибровочное изображение, поскольку обнаружил, что другие люди используют аналогичный подход, но я также пробовал использовать шаблон с несколькими квадратными изображениями.
Вот некоторые подробности о том, что я делаю:
calibrationFlags = cv::CALIB_FIX_K4 | CALIB_FIX_K5
использование calibrateCamera и функции undistort.
cv::undistort( InputImage, OutputImage, cameraMatrix, distCoeffs, cameraMatrix );
Я уже пробовал использовать initUndistortRectifyMap и getOptimalNewCameraMatrix, но результаты также похожи.
Чего я не понимаю?
Вот исходные и неискаженные изображения:
Комментарии:
1. есть причины, по которым вы исправляете k4 и k5? Правильно ли определены центры окружности?
2. @Micka Я видел другие источники, использующие исправление k4 и k5, но в результате нет разницы. Я добавил изображение с совпадающими точками.
3. Спасибо за ваше предложение, при проверке центров окружностей я обнаружил проблему с разрешением!
Ответ №1:
Я обнаружил проблему: я использовал изображение с половинным разрешением для калибровки, а затем использовал полное разрешение для применения неискажения. Все изображения в процессе должны (?) иметь одинаковое разрешение.