區域性標準差實現對比度增強

2022-01-23 13:58:27 字數 2974 閱讀 3365

一、理論

影象增強演算法的基本原則是「降低低頻區域,突出高頻區域」,以此強化邊緣,達到增強的目的。最簡單的例子就是通過原始影象減去高斯模糊處理後的影象,就能夠將邊緣強化出來。

ace的定義和原理看上去還是比較簡單的。這裡的

和都可以根據影象本身計算出來。而

則需要單獨計算。

可以為單獨的常量,或者通過

來代替。這裡的d是乙個全域性的值,比如平均值。

二、實現

涉及到區域性的運算,自然而然會想到使用卷積的方法。更好的是opencv提供了專門的函式用來做這個工作—blur

文件中寫到:

那麼正是我們想要的結果。

//ace 自適應對比度均衡研究

//by  jsxyhelu

//感謝 imageshop

#include"stdafx.h"

#include

#include"opencv2/core/core.hpp"

#include"opencv2/highgui/highgui.hpp"

#include"opencv2/imgproc/imgproc.hpp"

usingnamespacestd;

usingnamespacecv;

//點乘法 elementwisemultiplication

cv::mat ewm(cv:

:mat m1,cv:

:mat m2)

voidmain()

接下來,為了實現

那麼需要計算區域性標準差和全域性均值或方差

前面已經計算出了區域性均值,那麼

tmp = src - meanmask;  

varmask = ewm(tmp,tmp);         

blur(varmask,varmask,size(50,50));    //varmask為區域性方差   

計算出區域性方差

//換算成區域性標準差

varmask.convertto(varmask,cv_32f);

for(inti=

0;i}換算成區域性標準差

meanstddev(src,meanglobal,varglobal); //meanglobal為全域性均值 varglobal為全域性標準差

是opencv提供的全域性均值和標準差計算函式。

全部**進行重構後如下

//ace 自適應對比度均衡研究

//by  jsxyhelu

//感謝 imageshop

#include"stdafx.h"

#include

#include"opencv2/core/core.hpp"

#include"opencv2/highgui/highgui.hpp"

#include"opencv2/imgproc/imgproc.hpp"

usingnamespacestd;

usingnamespacecv;

//點乘法 elementwisemultiplication

cv::mat ewm(cv:

:mat m1,cv:

:mat m2)

//影象區域性對比度增強演算法

cv::mat ace(cv:

:mat src,intc =

4,intn=

20,intmaxcg =5)}

meanstddev(src,meanglobal,varglobal); //meanglobal為全域性均值 varglobal為全域性標準差

tmp2 = varglobal/varmask;

for(inti=

0;itmp2.convertto(tmp2,cv_8u);

tmp2 = ewm(tmp2,tmp);

dst = meanmask + tmp2;

imshow("d方法",dst);

dst = meanmask + c*tmp;

imshow("c方法",dst);

三、小結

從結果上來看,ace演算法對於特定情況下的細節增強是顯著的,但是並不是適用於所有的情況,並且其引數需要手工進行調整。了解它的特性,就能夠解決一系列的問題,有效地增強現實。

來自為知筆記(wiz)

區域性標準差實現對比度增強

一 理論 影象增強演算法的基本原則是 降低低頻區域,突出高頻區域 以此強化邊緣,達到增強的目的。最簡單的例子就是通過原始影象減去高斯模糊處理後的影象,就能夠將邊緣強化出來。ace的定義和原理看上去還是比較簡單的。這裡的 二 實現 涉及到區域性的運算,自然而然會想到使用卷積的方法。更好的是opencv...

python numpy實現 標準差,方差

使用numpy可以做很多事情,在這篇文章中簡單介紹一下如何使用numpy進行方差 標準方差 樣本標準方差 協方差的計算。variance 方差 方差 variance 是概率論中最基礎的概念之一,它是由統計學天才羅納德 費雪1918年最早所提出。用於衡量資料離散程度,因為它能體現變數與其數學期望 均...

均值,方差,標準差

對於一維資料的分析,最常見的就是計算平均值 mean 方差 variance 和標準差 standard deviation 在做 特徵工程 的時候,會出現缺失值,那麼經常會用到使用 平均值 或者 中位數等進行填充。平均值平均值的概念很簡單 所有資料之和除以資料點的個數,以此表示資料集的平均大小 其...