|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <opencv2/opencv.hpp> // all opencv header
|
|
|
|
#include "hdrplus/burst.h"
|
|
|
|
#include "hdrplus/align.h"
|
|
|
|
#include "hdrplus/merge.h"
|
|
|
|
#include "hdrplus/finish.h"
|
|
|
|
|
|
|
|
namespace hdrplus
|
|
|
|
{
|
|
|
|
|
|
|
|
class hdrplus_pipeline
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
hdrplus::align align_module;
|
|
|
|
hdrplus::merge merge_module;
|
|
|
|
hdrplus::finish finish_module;
|
|
|
|
|
|
|
|
public:
|
|
|
|
void run_pipeline( const std::string& burst_path, const std::string& reference_image_path );
|
|
|
|
bool run_pipeline( const std::vector<std::string>& burst_paths, int reference_image_index, cv::Mat& finalImg );
|
|
|
|
bool run_pipeline( const std::vector<std::vector<uint8_t> >& burst_contents, int reference_image_index, cv::Mat& finalImg );
|
|
|
|
bool run_pipeline( const std::vector<std::shared_ptr<MemFile> >& burst_contents, int reference_image_index, cv::Mat& finalImg );
|
|
|
|
|
|
|
|
hdrplus_pipeline() = default;
|
|
|
|
~hdrplus_pipeline() = default;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace hdrplus
|