0

我有个问题,findChessboardCorners在Qt-MinGW平台上运行时,可以得到正确的board_feature_locations_xy结果,但是在VS2015平台上运行同样的代码时,得到错误的结果,但是如果我把定义改成std::vector<cv::Point2f> board_feature_locations_xy;I cv::Mat board_feature_locations_xy; can得到正确的结果。那么任何人都可以解决这个问题吗?我使用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);
4

1 回答 1

0

我有类似的问题,当我在我的系统上本地构建 Opencv 而不是使用预构建的库时,它得到了修复。您可以参考此线程在您的系统上构建 Opencv当前 OpenCV 中的 lib 文件夹(或其替换)在哪里?

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

于 2016-03-05T05:12:50.083 回答