#include "opencv2/stitching/detail/autocalib.hpp"
#include "opencv2/stitching/detail/warpers.hpp"

#ifndef find_features_h
#define find_features_h

class FindFeatures {
private:
	cv::Ptr<cv::detail::FeaturesFinder> finder; // type of feature finder
	cv::Mat full_image, image; // temp mats to work on
	bool is_work_scale_set;
	double work_megapix; // image work megapixels
	bool is_seam_scale_set;
	double seam_scale; // image seam scale
	double seam_megapix; // image seam megapixels

public:
	FindFeatures(std::string features_type, // type of feature finder
		double work_megapix, // image work megapixels
		double seam_megapix); // image seam megapixels

	int find_features(std::vector<cv::Mat> &video_frames, // vector stores video frames
		std::vector<cv::detail::ImageFeatures> &features,  // vector stores image features
		std::vector<cv::Mat> &images, // vector stores rescaled images/frames
		std::vector<cv::Size> &full_image_sizes, // vector stores size of original images/frames
		double &work_scale, // scale at which to work
		double &seam_work_aspect); // seam_scale / work_scale
};

#endif
