/*
* Copyright (c) 2015,中国航天电子技术研究院 无人机系统工程研究所
* All rights reserved.
*
* 文件名称:fuseImg.h
* 摘 要:图像融合接口函数
*
* 当前版本:1.0
* 作 者:王家星
* 完成日期:2015年08月27日
*/

#pragma once

// OpenCV
#include <opencv2\opencv.hpp>  
using namespace cv;


// 功能:函数 FastFuseImgRGBplusIR() 快速融合两幅输入图像
// 输入:    
//	        img1: 输入图像1:RGB:三通道
//	        img2: 输入图像2:IR:三通道或单通道
// 输出:  
//          dst: 融合图像
// 返回值:
//          运算有效返回true,否则返回false
bool FastFuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg);


// 功能:函数 FuseImgRGBplusIR() 基于小波变换融合两幅输入图像
// 输入:    
//	        img1: 输入图像1:RGB:三通道
//	        img2: 输入图像2:IR:三通道或单通道
//          wname: 小波名称
//                 支持小波:
//							1. haar
//							2. symN  [1, 10]
//							3. dbN   [1, 10]
//							4. coifN [1, 5]
//          level:小波分解层数
// 输出:  
//          dst: 融合图像
// 返回值:
//          运算有效返回true,否则返回false
bool FuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg, const string wname = "sym5", const unsigned int level = 10);



// 功能:函数 FuseImg() 基于小波变换融合两幅输入图像
// 输入:    
//	        img1: 输入图像1
//	        img2: 输入图像2
//          wname: 小波名称
//                 支持小波:
//							1. haar
//							2. symN  [1, 10]
//							3. dbN   [1, 10]
//							4. coifN [1, 10]
//          level:小波分解层数
// 输出:  
//          dst: 融合图像
// 返回值:
//          运算有效返回true,否则返回false
bool FuseImg(cv::Mat &dst, const cv::Mat img1, const cv::Mat img2, const string wname = "sym5", const unsigned int level = 10);