1.头文件
#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <iostream>
using namespace std;
using namespace cv;
class JiaoDuJieSuan
{
public:
JiaoDuJieSuan();
//获得旋转矩形角点并保存在rectPoint2f
void huoDeJuXingJiaoDian(RotatedRect rect,Mat img);
void qiuJieJiaoDu(float &pitch, float &yaw);
void drawPoints(Mat img);
private:
Mat cameraMatrix;
Mat distortionCoefficients;
Mat rvecs;
Mat tvecs;
vector<Point2f> rectPoint2f;
vector<Point3f> muBiaoPoint3f;
float muBiaoWidth;
float muBiaoHeight;
};
2.源文件
#include "jiaodujiesuan.hpp"
JiaoDuJieSuan::JiaoDuJieSuan()
{
string filename = "out_Arlco_Camera_data.xml";
FileStorage fs(filename, FileStorage::READ);
if(!fs.isOpened()){
cout <<"no such file"<<endl;
return;