我在自己写的类的成员函数中调用solvePnP函数显示未定义是为什么啊,头文件也已经加上了。
下面是程序:
#pragma once
#include
using namespace cv;
using namespace std;
class self_SolvePnp {
public:
self_SolvePnp();
~self_SolvePnp();
bool Initialize();
void SetData(vector& Generate2DPoints, vector& Generate3DPoints, Mat& cameraMtrixl, Mat& distCoeffsl) ;
void solve();
Mat rvec;
Mat tvec;
private:
Mat cameraMtrixl_;
Mat distCoeffsl_;
vector Generate2DPoints_;
vector Generate3DPoints_;
};
#include "solvepnp.h"
#include
#include
#include
#include
using namespace cv;
using namespace std;
self_SolvePnp::self_SolvePnp() {}
self_SolvePnp::~self_SolvePnp() {}
void self_SolvePnp::SetData(vector& Generate2DPoints, vector& Generate3DPoints, Mat& cameraMtrixl, Mat& distCoeffsl)
{
Generate2DPoints_ = Generate2DPoints;
Generate3DPoints_ = Generate3DPoints;
cameraMtrixl_ = cameraMtrixl;
distCoeffsl_ = distCoeffsl;
}
void self_SolvePnp::solve()
{
// 现在就是报错SolvePnP未定义
SolvePnP(Generate3DPoints_, Generate2DPoints_, cameraMtrixl_, distCoeffsl_, rvec, tvec, false, SOLVEPNP_P3P);
}
SolvePnP在哪个头文件里申明的?