资源简介
优化对比度去雾算法配套算法,自己实现,非作者代码,可直接使用vs2013编译使用。算法速度比作者的实现略慢。有待优化。
代码片段和文件信息
#include “DeHaze.h“
//估计图像大气光值
void EstimateAirlight(cv::Mat& srcImage cv::Size& minSize std::vector& vAtom);
//估计粗透射率
void EstimateTransmission(cv::Mat& srcImage cv::Mat& transmission cv::Size& transBlockSize float costLambda std::vector& vAtom);
//细化透射率
void RefiningTransmission(cv::Mat& transmission cv::Mat& srcImage cv::Mat& refinedTransmission int r double eps);
//重建图像
void RestoreImage(cv::Mat& srcImage cv::Mat& transmission cv::Mat& dstImage std::vector& vAtom);
//导向滤波
void GuidedFileter(cv::Mat& guidedImage cv::Mat& inputImage cv::Mat& outPutImage int r double eps);
//gamma校正
void GammaTransform(cv::Mat &image cv::Mat &dist double gamma);
void DeHazebaseonContrastEnhance(cv::Mat& srcImg cv::Mat& dstImg cv::Size& transBlockSize float fLambda int guidedRadius double eps float fGamma /*= 1*/)
{
try
{
if (srcImg.data == nullptr || srcImg.empty() || transBlockSize.width <= 0 || transBlockSize.height <= 0 || fLambda <= 0 || guidedRadius <= 0)
{
throw “error:Input params error.“;
}
std::vector vAtom;
cv::Mat transmission;
if (srcImg.channels() == 3)
{
vAtom.push_back(255);
vAtom.push_back(255);
vAtom.push_back(255);
}
else
{
vAtom.push_back(255);
}
double exec_time = (double)cv::getTickCount();
EstimateAirlight(srcImg cv::Size(20 20) vAtom);
exec_time = ((double)cv::getTickCount() - exec_time)*1000. / cv::getTickFrequency();
std::cout << exec_time / 1000.0 << std::endl;
exec_time = (double)cv::getTickCount();
EstimateTransmission(srcImg transmission transBlockSize fLambda vAtom);
exec_time = ((double)cv::getTickCount() - exec_time)*1000. / cv::getTickFrequency();
std::cout << exec_time / 1000.0 << std::endl;
exec_time = (double)cv::getTickCount();
RefiningTransmission(transmission srcImg transmission guidedRadius eps);
exec_time = ((double)cv::getTickCount() - exec_time)*1000. / cv::getTickFrequency();
std::cout << exec_time / 1000.0 << std::endl;
exec_time = (double)cv::getTickCount();
RestoreImage(srcImg transmission dstImg vAtom);
exec_time = ((double)cv::getTickCount() - exec_time)*1000. / cv::getTickFrequency();
std::cout << exec_time / 1000.0 << std::endl;
GammaTransform(dstImg dstImg fGamma);
}
catch (cv::Exception& e)
{
throw e;
}
catch (std::exception& e)
{
throw e;
}
}
void EstimateAirlight(cv::Mat& srcImage cv::Size& minSize std::vector& vAtom)
{
try
{
if (minSize.height <= 0 || minSize.width <= 0)
{
throw “params error“;
}
if ((srcImage.channels() == 3 && vAtom.size() != 3) || (srcImage.channels() != 3 && vAtom.size() == 3))
{
throw “params error“;
}
cv::Mat holeImage = srcImage;
int width = holeImage.cols;
int height = holeImage.rows;
while (width*height > minSize.height*minSize.width)
{
std::vector fourSection;
cv::Mat ulImage = holeI
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 241 2020-03-05 16:59 .gitignore
目录 0 2020-03-05 16:57 DeHazeba
文件 13128 2020-03-05 16:57 DeHazeba
文件 359 2020-03-04 09:09 DeHazeba
文件 4167 2020-03-05 20:28 DeHazeba
文件 1158 2020-02-26 11:50 DeHazeba
文件 464 2020-03-03 09:52 DeHazeba
文件 1179 2020-03-05 16:50 DeHazeba
文件 1027 2020-02-25 10:23 DeHazeba
目录 0 2020-03-05 16:56 Debug\
文件 1123328 2020-03-05 20:28 Debug\DeHazeba
文件 3997704 2020-03-05 20:28 Debug\DeHazeba
文件 7139328 2020-03-05 20:28 Debug\DeHazeba
文件 3475456 2014-10-01 17:16 Debug\opencv_core2410d.dll
文件 1462272 2014-10-01 17:17 Debug\opencv_features2d2410d.dll
文件 3593216 2014-10-01 17:16 Debug\opencv_highgui2410d.dll
文件 3141632 2014-10-01 17:16 Debug\opencv_imgproc2410d.dll
文件 129501 2020-03-03 11:07 Debug\test.jpg
目录 0 2020-03-05 20:25 include\
目录 0 2020-03-05 20:25 include\opencv\
目录 0 2020-03-05 20:25 include\opencv\opencv\
文件 3438 2013-12-20 17:49 include\opencv\opencv\cv.h
文件 2411 2013-12-20 17:49 include\opencv\opencv\cv.hpp
文件 2850 2013-12-20 17:49 include\opencv\opencv\cvaux.h
文件 2346 2013-12-20 17:49 include\opencv\opencv\cvaux.hpp
文件 2184 2013-12-20 17:49 include\opencv\opencv\cvwimage.h
文件 2465 2013-12-20 17:49 include\opencv\opencv\cxcore.h
文件 2423 2013-12-20 17:49 include\opencv\opencv\cxcore.hpp
文件 2265 2013-12-20 17:49 include\opencv\opencv\cxeigen.hpp
文件 110 2013-12-20 17:49 include\opencv\opencv\cxmisc.h
文件 2306 2013-12-20 17:49 include\opencv\opencv\highgui.h
............此处省略179个文件信息
- 上一篇:NodeXL安装包
- 下一篇:lm386音频功放电路原理图与pcb
相关资源
- 图像去雾算法的几篇论文汇总
- 图像去雾.docx
- 图像去雾质量评价标准
- 15张图像去雾常用的雾霾图像
- Single Image Haze Removal Using Dark Channel P
- 基于图像去雾的几篇文章
- 实时去雾算法
- 何凯明暗原色先验原理的单一图像去
- Single Image Haze Removal Using Dark Channel P
- 针对输入的视频进行去雾增强处理
- 利用暗原色和多尺度Retinex对图片增强
- 去雾算法 dehazing 最新顶级会议和期刊
- 海天线提取加图像去雾,用暗原色先
- 图像去雾报告,代码,ppt
- 图像批量去除云、雾、霾小程序
- 单图像去雾算法AOD-Net实现
- 大量图像去雾代码和文档
- 大量图像去雾源代码和图像去雾质量
- 论文研究-视频实时自适应去雾算法
- 何恺明 暗原色先验图像去雾算法 导向
- 译文_Single Image Haze Removal Using Dark Ch
- retinex理论的图像去雾算法研究
- 数字图像去雾处理
- opencv+vs2017实现图象去雾
- 遥感图像去雾算法研究.
- 何凯明计算机视觉去雾源码+去雾小应
- Visibility_in_Bad_Weather_from_A_Single_Image
- 暗通道先验图像去雾程序
- 基于暗原色先验的单一图像去雾方法
- 基于图像增强的去雾算法代码
评论
共有 条评论