У меня есть вопрос, когда я бегу findChessboardCorners
на платформе Qt-MinGW я могу получить правильные результаты board_feature_locations_xy, но когда я запускаю тот же код на платформе VS2015, я получаю неправильные результаты, но если я изменю определение std::vector<cv::Point2f> board_feature_locations_xy;
в
cv::Mat board_feature_locations_xy;
Я могу получить правильные результаты.
Так кто-нибудь может решить эту проблему?
Я использую opencv-3.1.0.
std::vector<cv::Point2f> board_feature_locations_xy;
cv::Size board_feature_size(8, 6);
cv::findChessboardCorners(calibration_image_cv, board_feature_size, board_feature_locations_xy, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS);
У меня была похожая проблема, и она была исправлена, когда я собирал Opencv локально в своей системе вместо использования предварительно собранных библиотек. Вы можете обратиться к этой теме за сборкой Opencv в вашей системе. Где находится папка lib (или ее замена) в текущем OpenCV?
Также я изменил код калибровки камеры для работы с типом буфера точек cv :: Mat вместо вектора. Если вы выполняете калибровку камеры и столкнулись с этой проблемой, то изменение только при использовании imagePoints1.push_back (board_feature_loactions_xy) для обнаруженного угла для шахматной доски.
Других решений пока нет …