You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.7 KiB
53 lines
1.7 KiB
6 months ago
|
#pragma once
|
||
|
#include "Utils/util.h"
|
||
|
#include <iostream>
|
||
|
#include <fstream>
|
||
|
#include <opencv2/highgui/highgui.hpp>
|
||
|
#include <opencv2/imgproc/imgproc.hpp>
|
||
|
#include <opencv2/calib3d/calib3d.hpp>
|
||
|
#include <opencv2/core/core.hpp>
|
||
|
#include "opencv2/nonfree/nonfree.hpp"
|
||
|
|
||
|
using namespace std;
|
||
|
using namespace cv;
|
||
|
|
||
|
// ============== NOTIFICATION =============== //
|
||
|
//! image no. is encoded from 0, 2, ..., n-1. //
|
||
|
//! //
|
||
|
// =========================================== //
|
||
|
|
||
|
class PointMatcher
|
||
|
{
|
||
|
public:
|
||
|
PointMatcher(vector<string> imgNameList, bool extraPoints)
|
||
|
{
|
||
|
featureDimension = 64;
|
||
|
_imgNameList = imgNameList;
|
||
|
_imgNum = imgNameList.size();
|
||
|
featureExtractor(extraPoints);
|
||
|
};
|
||
|
|
||
|
public:
|
||
|
void featureExtractor(bool extraPoints);
|
||
|
void readfeatures(int imgIndex, vector<Point2d> &keyPts, Mat &descriptors, double ratio);
|
||
|
void savefeatures(vector<KeyPoint> keyPts, Mat descriptors, string saveName);
|
||
|
void loadImgSizeList();
|
||
|
void saveImgSizeList();
|
||
|
|
||
|
bool tentativeMatcher(int imgIndex1, int imgIndex2);
|
||
|
bool featureMatcher(int imgIndex1, int imgIndex2, vector<Point2d> &pointSet1, vector<Point2d> &pointSet2); //! all the imgIndex start from 1
|
||
|
void saveMatchPts(int imgIndex1, int imgIndex2, vector<Point2d> pointSet1, vector<Point2d> pointSet2);
|
||
|
bool loadMatchPts(int imgIndex1, int imgIndex2, vector<Point2d> &pointSet1, vector<Point2d> &pointSet2);
|
||
|
|
||
|
void pointConvert(Mat_<double> homoMat, Point2d src, Point2d &dst);
|
||
|
void drawMatches(int imgIndex1, int imgIndex2, vector<Point2d> pointSet1, vector<Point2d> pointSet2);
|
||
|
|
||
|
public:
|
||
|
vector<Size> _imgSizeList;
|
||
|
vector<string> _imgNameList;
|
||
|
|
||
|
private:
|
||
|
int _imgNum;
|
||
|
int featureDimension;
|
||
|
vector<string> _keysFileList;
|
||
|
};
|