#include "opencv2/stitching/detail/exposure_compensate.hpp"
#include "opencv2/stitching/detail/seam_finders.hpp"

#ifndef seam_compensator_h
#define seam_compensator_h

class SeamCompensator {
private:
	cv::Ptr<cv::detail::SeamFinder> seam_finder;

public:
	SeamCompensator(std::string seam_find_type,
		cv::Ptr<cv::detail::ExposureCompensator> &compensator,
		int exposure_compensator_type);

	int seam_compensate(std::vector<cv::Point> &corners, // vector to store positions of image corners
		std::vector<cv::Mat> &images_warped, // vector to store warped images
		std::vector<cv::Mat> &masks_warped, // vector to store warped image masks
		cv::Ptr<cv::detail::ExposureCompensator> &compensator, // pointer to compensator object
		std::vector<cv::Mat> &images_warped_temp); // temp vector to store warped images
};

#endif
