У меня вопрос, когда я запускаю 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.Функция cv :: findChessboardCorners углы не могут быть std :: vector <cv::Point2f>
0
A
ответ
0
У меня была схожая проблема, и она была исправлена, когда я построил Opencv локально на своей системе, вместо использования предварительно построенных библиотек. Вы можете обратиться к этой теме для построения OpenCV в системе Where is the lib folder (or its replacement) in the current OpenCV?
Также я изменил код калибровки камеры для работы сорте :: Mat типа точки буфера вместо vector.If вы делаете калибровку камеры и вы столкнулись с этой проблемой, тогда только изменение заключается в использовании imagePoints1.push_back (board_feature_loactions_xy) для угла, который был обнаружен для шахматной доски.
Я также использовал openCV lib, созданный Cmake, и на платформе vs2015 x64. Я не знаю, как решить эту проблему дальше. Я не знаю, почему тот же исходный код openCV не может быть пересажен на другую платформу. – Chester
Выполняете калибровку с помощью шахматной доски. Если это так, вы можете легко изменить код, который использует тип данных как Mat, чтобы вы могли получить калибровочные значения для камеры. –
Да, я думаю, мне нужно изменить тип данных как Mat сейчас, как следующий метод: http://stackoverflow.com/questions/31441204/opencv-issue-with-findchessboardcorners – Chester