資源簡介
RemoveHaze.rar

代碼片段和文件信息
//?DarkDlg.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?
#include?“time.h“
#include?
#include?“resource.h“ //?main?symbols
#include?“DarkChannelPrior.h“
#include?
#include?
using?namespace?std;
#define?for?if?(false);?else?for
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
int?cmp(?const?int?&a?const?int?&b?){
????if(?a?>?b?)
return?1;
????else
return?0;
}
CDarkChannelPrior::CDarkChannelPrior() //?standard?constructor
{
}
CDarkChannelPrior::~CDarkChannelPrior() //?standard?constructor
{
}
/****************************************************************************************
??*
??*?函數名稱:
??*???Process()
??*
??*?參數:
??*???IplImage?*pImage????-?要處理的圖像的指針
??*
??*?返回值
??*???IplImage*???????????-?成功返回IplImage*指針。
??*
??*?說明:
??*???該函數對原圖像進行基于暗原色先驗的圖像去霧處理,并將結果存儲一個IplImage*對象中。
??*
*****************************************************************************************/
IplImage*?CDarkChannelPrior::Process(IplImage?*pImage)
{
blockSize?=?15;
w0?=?0.95;
????t0=0.4;
clock_t?start?finish;?
start?=?clock();???//程序運行起始時間
CvMat?*darkImage?=?NULL;
double?airlight?=?0.0;
CvMat?*Mat?=?NULL;
CvMat?*mat?=?NULL;
IplImage?*resImage?=?NULL;
if?(pImage->nChannels?==?1)
{
darkImage?=?GetSingleDarkChannel(pImage?blockSize);??//獲得dark?channel圖
airlight?=?GetAirLight(darkImage);??//獲得大氣光Airlight
????????Mat?=?GetT(darkImage?w0?airlight); ??//計算transmission
mat?=?guidedfilter(pImage?Mat?20?0.001);
resImage?=?GetResultGrayImage(pImage?mat?airlight?t0);??//獲得修正t后的去霧圖像?
}
else
{
darkImage?=?GetDarkChannel(pImage?blockSize);??//獲得dark?channel圖
airlight?=?GetAirLight(darkImage);??//獲得大氣光Airlight
Mat?=?GetT(darkImage?w0?airlight); ??//計算transmission
mat?=?guidedfilter_color(pImage?Mat?20?0.001);
????resImage?=?GetResultColorImage(pImage?mat?airlight?t0);??//獲得修正t后的去霧圖像
}
finish?=?clock();??//程序結束時間
double?duration?=?(double)(finish?-?start)?/?CLOCKS_PER_SEC;??//計算程序運行的時間
time.Format(“%lf“?duration);
return?resImage;
}
/****************************************************************************************
??*
??*?函數名稱:
??*???GetDarkChannel()
??*
??*?參數:
??*???IplImage?*srcImage????-?要處理的原圖像的指針
??*???int?blockSize?????????-?選取的塊的大小
??*
??*?返回值
??*???CvMat*????????????????-?成功返回CvMat的指針。
??*
??*?說明:
??*???該函數計算srcImage圖像的dark?channel?prior圖,并將結果存儲一個CvMat對象中。
??*
*****************************************************************************************/
CvMat*?CDarkChannelPrior::GetDarkChannel(IplImage?*srcImage?int?blockSize)
{
int?height?=?srcImage->height;
int?width?=?srcImage->width;
int?channels?=?srcImage->nChannels;
int?win_size?=?(blockSize?-?1)/2;
IplImage?*R?=?cvCreateImage(cvGetSize(srcImage)?srcImage->depth?1);
IplImage?*G?=?cvCreateImage(cvGet
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????42845??2011-03-28?11:31??RemoveHaze\CLAHE.CPP
?????文件???????2370??2011-01-13?17:31??RemoveHaze\CLAHE.H
?????文件??????28184??2011-03-28?11:00??RemoveHaze\DarkChannelPrior.cpp
?????文件???????1381??2011-01-09?15:49??RemoveHaze\DarkChannelPrior.h
?????文件??????34507??2011-10-14?11:11??RemoveHaze\Debug\CLAHE.obj
?????文件??????????0??2011-10-14?11:11??RemoveHaze\Debug\CLAHE.sbr
?????文件??????71592??2011-03-28?11:07??RemoveHaze\Debug\DarkChannelPrior.obj
?????文件??????????0??2011-03-28?11:07??RemoveHaze\Debug\DarkChannelPrior.sbr
?????文件??????11385??2011-03-28?11:07??RemoveHaze\Debug\Morphology.obj
?????文件??????????0??2011-03-28?11:07??RemoveHaze\Debug\Morphology.sbr
?????文件????5948416??2011-10-14?11:11??RemoveHaze\Debug\RemoveHaze.bsc
?????文件?????180336??2011-10-14?11:11??RemoveHaze\Debug\RemoveHaze.exe
?????文件?????346632??2011-10-14?11:11??RemoveHaze\Debug\RemoveHaze.ilk
?????文件??????17594??2011-03-13?16:05??RemoveHaze\Debug\RemoveHaze.obj
?????文件????7036544??2011-01-13?10:09??RemoveHaze\Debug\RemoveHaze.pch
?????文件?????566272??2011-10-14?11:11??RemoveHaze\Debug\RemoveHaze.pdb
?????文件???????3488??2011-02-24?14:43??RemoveHaze\Debug\RemoveHaze.res
?????文件??????????0??2011-03-13?16:05??RemoveHaze\Debug\RemoveHaze.sbr
?????文件??????94054??2011-03-19?14:57??RemoveHaze\Debug\RemoveHazeDlg.obj
?????文件??????????0??2011-03-19?14:57??RemoveHaze\Debug\RemoveHazeDlg.sbr
?????文件??????21698??2011-03-28?11:07??RemoveHaze\Debug\Retinex.obj
?????文件??????????0??2011-03-28?11:07??RemoveHaze\Debug\Retinex.sbr
?????文件?????105860??2011-01-13?10:09??RemoveHaze\Debug\StdAfx.obj
?????文件????1374962??2011-01-13?10:09??RemoveHaze\Debug\StdAfx.sbr
?????文件?????312320??2011-10-24?10:24??RemoveHaze\Debug\vc60.idb
?????文件?????462848??2011-10-14?11:11??RemoveHaze\Debug\vc60.pdb
?????文件???????3968??2011-03-28?09:48??RemoveHaze\Morphology.cpp
?????文件????????446??2011-01-20?10:02??RemoveHaze\Morphology.h
?????文件???????3651??2010-12-24?11:24??RemoveHaze\ReadMe.txt
?????文件??????22572??2011-10-14?11:10??RemoveHaze\RemoveHaze.aps
............此處省略25個文件信息
- 上一篇:基于VHDL的程序設計集
- 下一篇:網絡組建與維護實訓
評論
共有 條評論