ACE(自適應對比對增強)的分析與改進

2021-09-25 11:55:15 字數 2229 閱讀 7014

該方法的基本思想是將影象分成兩部分:低頻和高頻兩部分,增強高頻部分,再合成。達到銳度增強的效果。一般在y通道進行。

區域性低頻部分:lowfre = blur(srcy, r)//區域性濾波

區域性高頻部分:highfre = srcy - lowfre

區域性標準差:  localstd^2 = blur(highfre*highfre, r)

全域性均值和標準差:gmean

自適應高頻增強因子:c = a * gmean / localstd,其中a =[0,1]

計算低頻和高頻的合成:srcy' = lowfre + c * highfre

最後轉換並合成三通道

程式如下:

bool adaptcontrastenhancement(mat& src, mat& dst, int r, int maxcg)

//mat ycc; //轉換空間到ycrcb;

//cvtcolor(scr, ycc, color_rgb2ycrcb);

//vectorchannels(3); //分離通道;

//split(ycc, channels);

mat localmeansmatrix(src.rows, src.cols, cv_8uc1);

mat localvariancematrix(src.rows, src.cols, cv_8uc1);

mat highfre(src.rows, src.cols, cv_8uc1);

//mat highfremul(src.rows, src.cols, cv_8uc1, scalar::all(10));

boxfilter(src, localmeansmatrix, cv_8uc1, size(r, r));//low fre

highfre = src - localmeansmatrix;//heigh fre

//highfre = highfre.mul(highfremul);

imshow("low fre", localmeansmatrix);

imshow("high fre", highfre);

//imshow("blur high fre", highfre);

localvariancematrix = highfre.mul(highfre);

localmeansmatrix.convertto(localmeansmatrix, cv_32f);

localvariancematrix.convertto(localvariancematrix, cv_32f);

boxfilter(localvariancematrix, localvariancematrix, cv_32fc1, size(r, r));// var , e((r-e(r))*(r-e(r)))

for (int i = 0; i < localvariancematrix.rows; i++) }

mat temp = src.clone();

scalar mean;

scalar dev;

meanstddev(temp, mean, dev);//global mean std

float meansglobal = mean.val[0];

mat enhancematrix(src.rows, src.cols, cv_8uc1);

for (int i = 0; i < src.rows; i++) //遍歷,對每個點進行自適應調節

else if (e < 0)

enhancematrix.at(i, j) = e;

}else

}} dst = enhancematrix;

}

y通道低頻部分和高頻部分(為了視覺化,高頻幅值被放大了)分別如下:

網格自適應 Fluent網格自適應

1,前言 國慶剛過,馬上就要上班,上課了,祝福大家事業學業都有新的進步,新的前途。2,內容簡介 我們在平時做流體分析時,經常會遇到乙個問題,當畫好的網格匯入fluent計算時,看了分析結果,想讓某一部分我們關注的點更加細化一些,我們不得不重新去網格軟體裡調整網格。今天介紹的fluent自帶的網格自適...

網格自適應 網格自適應04 各向異性自適應

本文描述各向異性網格自適應方法應用。由於各向異性自適應 anisotropic adaption 僅適用於特定的網格型別,因此存在以下限制 利用按鈕 setting up domain adapt more anisotropic refinement.開啟anisotropic adaption設...

Iframe自適應高度和拖拽自適應

思路 1.在iframe所在的主頁面取iframe內部的高度 2.在iframe內部當初始化完之後取得自己高度並改變父iframe高度 法一 需要在iframe的平級,當頁面初始化的時候呼叫 the iframe height self adaption param the iframe id fu...