資源簡介
自己編寫的彩色圖像自適應增強的完整代碼,下載后配置環境即可運行。無C幣的可以直接在我博客留言,我會發送給你。https://blog.csdn.net/u013921430/article/details/83865427
代碼片段和文件信息
//--------------------------
//Adaptive?Contrast?Enhancement(自適應對比度增強,ACE)
//不用先生,2018.11.08
//-------------------------------
#include
#include
#include
using?namespace?std;
using?namespace?cv;
//--------------------
//函數功能:獲取圖像的局部均值與局部標準差的圖
//函數名稱:getVarianceMean
//函數參數:Mat?&scr:輸入圖像,為單通道;
//函數參數:Mat?&meansDst:計算得到的均值的圖,均值的值與輸入圖像中的點一一對應,為單通道;
//函數參數:Mat?&varianceDst:計算得到的標準差的圖,標準差的值與輸入圖像中的點一一對應,為單通道;
//函數參數:int?winSize:局部均值的窗口大小,應為單數;
//返回類型:bool
//--------------------
bool?getVarianceMean(Mat?&scr?Mat?&meansDst?Mat?&varianceDst?int?winSize)
{
if?(!scr.data)??//判斷圖像是否被正確讀取;
{
cerr?<“獲取方差與均值的函數讀入圖片有誤“;
return?false;
}
if?(winSize?%?2?==?0)
{
cerr?<“計算局部均值與標準差的窗口大小應該為單數“;
return?false;
}
Mat?copyBorder_yChannels;????????????????????????//擴充圖像邊界;
int?copyBorderSize?=?(winSize?-?1)?/?2;
copyMakeBorder(scr?copyBorder_yChannels?copyBorderSize?copyBorderSize?copyBorderSize?copyBorderSize?BORDER_REFLECT);
for?(int?i?=?(winSize?-?1)?/?2;?i? {
for?(int?j?=?(winSize?-?1)?/?2;?j? {
Mat?temp?=?copyBorder_yChannels(Rect(j?-?(winSize?-?1)?/?2?i?-?(winSize?-?1)?/?2?winSize?winSize));???//截取擴展后的圖像中的一個方塊;
Scalar??mean;
Scalar??dev;
meanStdDev(temp?mean?dev);
varianceDst.at(i?-?(winSize?-?1)?/?2?j?-?(winSize?-?1)?/?2)?=?dev.val[0];?????///一一對應賦值;
meansDst.at(i?-?(winSize?-?1)?/?2?j?-?(winSize?-?1)?/?2)?=?mean.val[0];
}
}
return?true;
}
//--------------------------
//函數功能:獲取圖像的局部均值與局部標準差的圖
//函數名稱:adaptContrastEnhancement
//函數參數:Mat?&scr:輸入圖像,為三通道RGB圖像;
//函數參數:Mat?&dst:增強后的輸出圖像,為三通道RGB圖像;
//函數參數:int?winSize:局部均值的窗口大小,應為單數;
//函數參數:int?maxCg:增強幅度的上限;
//返回類型:bool
//--------------------
bool?adaptContrastEnhancement(Mat?&scr?Mat?&dst?int
- 上一篇:元胞自動機的NS模型
- 下一篇:引導濾波_Cpp_Python.rar
評論
共有 條評論