Углы функции cv :: findChessboardCorners не могут быть std :: vector & lt; cv :: Point2f & gt;

У меня есть вопрос, когда я бегу 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);

0

Решение

У меня была похожая проблема, и она была исправлена, когда я собирал Opencv локально в своей системе вместо использования предварительно собранных библиотек. Вы можете обратиться к этой теме за сборкой Opencv в вашей системе. Где находится папка lib (или ее замена) в текущем OpenCV?

Также я изменил код калибровки камеры для работы с типом буфера точек cv :: Mat вместо вектора. Если вы выполняете калибровку камеры и столкнулись с этой проблемой, то изменение только при использовании imagePoints1.push_back (board_feature_loactions_xy) для обнаруженного угла для шахматной доски.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]