|
|
|
|
|
/*
|
|
|
功能:图像去雾
|
|
|
设计者:王家星
|
|
|
修改时间:2015 05 15
|
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
// 情报数据通用结构
|
|
|
#include "QBStru.h"
|
|
|
|
|
|
// OpenCV
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
using namespace cv;
|
|
|
|
|
|
|
|
|
// 1. OpenCV结构下的图像去雾控制
|
|
|
|
|
|
//功能:图像去雾控制(OpenCV结构)
|
|
|
//输入: 1. img 输入图像
|
|
|
// 2. A_MAX 控制去雾效果, A_MAX < 0 时,自适应计算(特别耗时); 有效范围【0,255】,异常值自适应
|
|
|
// 3. degree 控制去雾效果, 有效范围【0,1】,异常值自适应
|
|
|
|
|
|
//输出: 1. HazeFree 输出图像
|
|
|
// 2. 返回值:处理成功返回true,失败返回false
|
|
|
bool DeHazeImg(const cv::Mat &img, cv::Mat &HazeFree, double A_MAX = -1, double degree = 0.78);
|
|
|
|
|
|
|
|
|
|
|
|
// 2. ImgStru结构下的图像去雾控制
|
|
|
|
|
|
//功能:图像去雾控制(ImgStru结构)
|
|
|
//输入: 1. src 输入图像结构体
|
|
|
// 2. A_MAX 控制去雾效果, A_MAX < 0 时,自适应计算(特别耗时); 有效范围【0,255】,异常值自适应
|
|
|
// 3. degree 控制去雾效果, 有效范围【0,1】,异常值自适应
|
|
|
|
|
|
//输出: 1. dst 输出图像结构体
|
|
|
// 2. 返回值:处理成功返回true,失败返回false
|
|
|
bool ImgStruDeHazeControl(ImgStru* src, ImgStru* dst, int A_MAX = -1, double degree = 0.78);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3. QBStru结构下的图像去雾控制
|
|
|
//功能:图像去雾控制
|
|
|
//输入: 1. qbData 通用情报数据结构体
|
|
|
// 2. A_MAX 控制去雾效果, A_MAX < 0 时,自适应计算(特别耗时); 有效范围【0,255】
|
|
|
// 3. degree 控制去雾效果, 有效范围【0,1】
|
|
|
// 3. bSrcFirst 默认时,优先处理srcImg, srcImg-->dstImg
|
|
|
// 否则,优先处理dstImg,dstImg——>dstImg
|
|
|
|
|
|
//输出: 1. qbData 含图像去雾后图像的情报数据结构体
|
|
|
// 2. 返回值:处理成功返回true,失败返回false
|
|
|
//说明: 首先判断图像数据有效性标识位,无效时直接返回,不做任何处理;
|
|
|
bool QBStruDeHazeControl(QBStru *qbData, int A_MAX = -1, double degree = 0.78, bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|