42#ifndef __OPENCV_RANDOMPATTERN_HPP__
43#define __OPENCV_RANDOMPATTERN_HPP__
45#include "opencv2/features2d.hpp"
46#include "opencv2/highgui.hpp"
48namespace cv {
namespace randpattern {
81 int nminiMatch = 20,
int depth = CV_32F,
int verbose = 0,
int showExtraction = 0,
89 void loadPattern(
const cv::Mat &patternImage);
96 void loadPattern(
const cv::Mat &patternImage,
const std::vector<cv::KeyPoint> &patternKeyPoints,
const cv::Mat &patternDescriptors);
105 void computeObjectImagePoints(std::vector<cv::Mat> inputImages);
114 std::vector<cv::Mat> computeObjectImagePointsForSingle(
cv::Mat inputImage);
118 const std::vector<cv::Mat> &getObjectPoints();
122 const std::vector<cv::Mat> &getImagePoints();
126 std::vector<cv::Mat> _objectPonits, _imagePoints;
127 float _patternWidth, _patternHeight;
136 Mat _descriptorPattern;
137 std::vector<cv::KeyPoint> _keypointsPattern;
141 void keyPoints2MatchedLocation(
const std::vector<cv::KeyPoint>& imageKeypoints,
142 const std::vector<cv::KeyPoint>& patternKeypoints,
const std::vector<cv::DMatch> matchces,
145 void getObjectImagePoints(
const cv::Mat& imageKeypoints,
const cv::Mat& patternKeypoints);
147 const Mat& descriptors1,
const Mat& descriptors2,
148 std::vector<DMatch>& filteredMatches12,
int knn=1 );
149 void drawCorrespondence(
const Mat& image1,
const std::vector<cv::KeyPoint> keypoint1,
150 const Mat& image2,
const std::vector<cv::KeyPoint> keypoint2,
const std::vector<cv::DMatch> matchces,
151 const Mat& mask1,
const Mat& mask2,
const int step);
172 void generatePattern();
178 int _imageWidth, _imageHeight;
static CV_WRAP Ptr< AKAZE > create(AKAZE::DescriptorType descriptor_type=AKAZE::DESCRIPTOR_MLDB, int descriptor_size=0, int descriptor_channels=3, float threshold=0.001f, int nOctaves=4, int nOctaveLayers=4, KAZE::DiffusivityType diffusivity=KAZE::DIFF_PM_G2)
The AKAZE constructor
static CV_WRAP Ptr< DescriptorMatcher > create(const String &descriptorMatcherType)
Creates a descriptor matcher of a given type with the default parameters (using default constructor).
n-dimensional dense array class
Definition: mat.hpp:802
Template class for specifying the size of an image or rectangle.
Definition: core/types.hpp:316
Class for finding features points and corresponding 3D in world coordinate of a "random" pattern,...
Definition: randpattern.hpp:66
Definition: randpattern.hpp:161
"black box" representation of the file storage associated with a file on disk.
Definition: aruco.hpp:75
Definition: cvstd_wrapper.hpp:74