【发布时间】:2012-03-31 17:05:45
【问题描述】:
我正在尝试通过在我的代码中进行简单测试来使 Aruco AR 库正常工作。
由于某种原因,我无法调用 detect()。我的代码如下:
cv::Mat image(480,640,CV_8UC3, mimFrameRGB.data());
MarkerDetector mDetector;
std::vector<Marker> markers;
CameraParameters cParams();
float markerSize = 0.1f;
mDetector.detect(image,markers,cParams,markerSize);
编译器抱怨没有与我的输入参数匹配的重载函数。具体来说,参数 3 应该是 cv::Mat 类型。
查看MarkerDetector的头文件,发现有以下两个方法调用:
void detect(const cv::Mat &input,std::vector<Marker> &detectedMarkers,cv::Mat camMatrix=cv::Mat(),cv::Mat distCoeff=cv::Mat(),float markerSizeMeters=-1) throw (cv::Exception);
void detect(const cv::Mat &input,std::vector<Marker> &detectedMarkers, CameraParameters camParams,float markerSizeMeters=-1) throw (cv::Exception);
我试图调用第二个,但是它选择了第一个并给了我一个编译错误。出了什么问题?我的输入参数是否与这两种情况都不匹配?
【问题讨论】:
标签: c++ methods overloading augmented-reality