• 大小: 6.33MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-25
  • 语言: 其他
  • 标签: 去雾  

资源简介

优化对比度去雾算法配套算法,自己实现,非作者代码,可直接使用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  DeHazebaseonContrastEnhance\
     文件       13128  2020-03-05 16:57  DeHazebaseonContrastEnhance\DeHaze.cpp
     文件         359  2020-03-04 09:09  DeHazebaseonContrastEnhance\DeHaze.h
     文件        4167  2020-03-05 20:28  DeHazebaseonContrastEnhance\DeHazebaseonContrastEnhance.vcxproj
     文件        1158  2020-02-26 11:50  DeHazebaseonContrastEnhance\DeHazebaseonContrastEnhance.vcxproj.filters
     文件         464  2020-03-03 09:52  DeHazebaseonContrastEnhance\DeHazebaseonContrastEnhance.vcxproj.user
     文件        1179  2020-03-05 16:50  DeHazebaseonContrastEnhance\main_img.cpp
     文件        1027  2020-02-25 10:23  DeHazebaseonContrastEnhance.sln
     目录           0  2020-03-05 16:56  Debug\
     文件     1123328  2020-03-05 20:28  Debug\DeHazebaseonContrastEnhance.exe
     文件     3997704  2020-03-05 20:28  Debug\DeHazebaseonContrastEnhance.ilk
     文件     7139328  2020-03-05 20:28  Debug\DeHazebaseonContrastEnhance.pdb
     文件     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个文件信息

评论

共有 条评论