資源簡介
優化對比度去霧算法配套算法,自己實現,非作者代碼,可直接使用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?=?(double)cv::getTickCount();
EstimateTransmission(srcImg?transmission?transBlockSize?fLambda?vAtom);
exec_time?=?((double)cv::getTickCount()?-?exec_time)*1000.?/?cv::getTickFrequency();
std::cout?< 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?=?(double)cv::getTickCount();
RestoreImage(srcImg?transmission?dstImg?vAtom);
exec_time?=?((double)cv::getTickCount()?-?exec_time)*1000.?/?cv::getTickFrequency();
std::cout?<
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
評論
共有 條評論