function cv :: findChessboardCorners corner不能是std :: vector <cv :: point2f>

时间:2016-03-04 14:34:51

标签: c++ opencv opencv3.1

我有一个问题,当我在Qt-MinGW平台上运行findChessboardCorners时,我可以得到正确的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);

1 个答案:

答案 0 :(得分:0)

我有类似的问题,当我在我的系统上本地构建Opencv而不是使用预先构建的库时,它得到了修复。您可以参考此主题在您的系统上构建Opencv Where is the lib folder (or its replacement) in the current OpenCV?

此外,我更改了相机校准代码以适用于cv :: Mat点缓冲区类型而不是矢量。如果您正在进行相机校准并且遇到此问题,那么只需更改即使用imagePoints1.push_back(board_feature_loactions_xy)作为角落被检测到的棋盘。