/*********版权所有（C）2025，武汉高德红外股份有限公司***************************************
* 文件名称：Arith_BlendMap.h
* 文件标识：拼接融合，提升全景图质量
* 内容摘要：
* 其它说明：
* 当前版本：V0.5
* 创建作者：04046wcw
* 创建日期：2025/02/13
* 包含关系：
*****************************************************************************************/
#pragma once

#ifndef Blend_MAP_H
#define Blend_MAP_H


#include "FileCache.h"

// 下视批量绘制
class  MapBlend
{
public:
	MapBlend(FileCache<FrameCache>* cache);
	~MapBlend();

public:
	void MapFrame(cv::Mat src,cv::Mat H_Geo, cv::Mat mapH, cv::Mat pan, cv::Mat pan_mask); // 投影帧到全景图

	void DirectMap(vector<KeyType> frameInd, cv::Mat mapH, cv::Mat pan, cv::Mat pan_mask); //直接投影

	void BlendMap(vector<KeyType> frameInd, cv::Mat mapH, cv::Mat pan, cv::Mat pan_mask);//融合投影

private:

	FileCache<FrameCache>* _cache;
};

// 前视批量绘制
class FrontMapBlend
{
public:
	FrontMapBlend(FileCache<FrameCache>* cache);
	~FrontMapBlend();
public:
	void DirectMap(vector<KeyType> frameInd, FPanInfo _panPara, cv::Mat pan, cv::Mat pan_mask, cuda_Mem cuda_resor); //直接投影

private:
	FileCache<FrameCache>* _cache;
};



#endif