1. 程式人生 > >計算機視覺(二):直方圖均衡

計算機視覺(二):直方圖均衡

一、灰度空間的直方圖均衡

1.直方圖

      灰度級範圍為[0,L-1]的數字影象的直方圖是離散函式 h

( r k ) = n k h(r_k)=n_k
,其中 r k r_k 是第 k k 級灰度值, n
k n_k
是影象中灰度為 r k r_k 的畫素個數。在實踐中,經常用乘積 M N MN 表示的影象總畫素除每個分量來歸一化直方圖,通常 M M N N 是影象的行數和列數。因此,歸一化後的直方圖由
p ( r k ) = n k M N p(r_k)={n_k\over{MN}} 給出,其中 k = 0 , 1 , . . . , L 1 k=0,1,...,L-1 。歸一化直方圖的所有分量之和應等於1。
      直觀上,可以得出這樣的結論:若一幅影象的畫素傾向於佔據整個可能的灰度級並且分佈均勻,則該影象會有高對比度的外觀並展示灰色調的較大變換。最終效果將是一幅灰度細節豐富且動態範圍較大的影象。為實現該效果,我們需要一個變換函式,將輸入影象直方圖資訊進行變換,得到均勻分佈的影象。

2.變換函式應滿足條件

      考慮連續灰度值,並用變數 r r 表示待處理影象的灰度。通常,我們假設 r r 的取值區間為[0,L-1],且 r = 0 r = 0 表示黑色, r = L 1 r = L-1 表示白色。在 r r 滿足這些條件的情況下,我們將注意力集中到變換函式
s = T ( r )            0 r L 1 s = T(r)\ \ \ \ \ \ \ \ \ \ 0≤r≤L-1 上,對於輸入影象中每個具有 r r 值的畫素產生一個輸出灰度值 s s 。為了實現變換後的灰度值均勻分佈的效果,變換函式需滿足以下條件:
(a) T ( r ) T(r) 在區間[0,L-1]上為單調遞增函式
(b) 當 0 r L 1 0≤r≤L-1 時, 0 T ( r ) L 1 0≤T(r)≤L-1 ,且 T ( r ) T(r) 均勻分佈
為了能用反函式
r = T 1 ( s )            0 s L 1 r = T^{-1}(s)\ \ \ \ \ \ \ \ \ \ 0≤s≤L-1 計算原色影象,在這種情況下,條件(a)改為
(a`) T ( r ) T(r) 在區間[0,L-1]上為嚴格單調遞增函式

證明:
(a) 要求 T ( r ) T(r) 單調遞增,可保持原來輸入值大小關係不變,即無論如何對映,較亮區域依然亮,較暗區域依然暗。
(b) 保證輸出灰度值的範圍與輸入灰度值的範圍相同,且變換後的灰度值需均勻分佈。
(a`) 要求 T ( r ) T(r) 嚴格單調遞增,可保證從 s s r r 的反對映是一對一的,防止出現二義性。

3.變換函式

      一幅影象的灰度級可視為區間[0,L-1]內的隨機變數。隨機變數的基本描述子是其概率密度函式(PDF)。令 p r ( r ) p_r(r) p s ( s ) p_s(s) 分別表示隨機變數 r r s s 的概率密度函式,其中 p p 的下標用於指示 p r ( r ) p_r(r) p s ( s ) p_s(s) 是不同的函式。
      在影象處理中,特別重要的變換函式有如下形式:
s = T ( r ) = ( L 1 ) 0 r p r ( w ) d w            ( 1 ) s = T(r) = (L-1)\int_0^rp_r(w)dw\ \ \ \ \ \ \ \ \ \ (1) 式中, w w 是積分的假變數。該公式滿足上述條件(a`)(b)。

證明:
公式右邊是隨機變數 r r 的累積分佈函式(CDF)。因為PDF總為正,回憶可知一個函式的積分是該函式下方的面積,固該公式為嚴格遞增函式,滿足條件(a`)。
現證明該公式滿足條件(b):
用微積分換元法,可得:
p r ( r ) d r = p T ( r ) ( T ( r ) ) d ( T ( r ) ) = p s ( s ) d s p_r(r)dr = p_{T(r)}(T(r)) d(T(r)) = p_s(s)ds
p s ( s ) = p r ( r ) d r d s            ( 2 ) p_s(s) = p_r(r)|{{dr}\over{ds}}|\ \ \ \ \ \ \ \ \ \ (2) 又因為
d s d r = d T ( r ) d r = ( L 1 ) d d r [ 0 r p r ( w ) d w ] = ( L 1 ) p r ( r )       ( 3 ) {{ds}\over{dr}} = {{dT(r)}\over{dr}} = (L-1){d\over{dr}}[\int_0^rp_r(w)dw] = (L-1)p_r(r)\ \ \ \ \ (3)

相關推薦

計算機視覺直方圖均衡

一、灰度空間的直方圖均衡 1.直方圖 2.變換函式應滿足條件 3.變換函式 4.直方圖均衡 二、彩色空間的直方圖均衡

計算機視覺影象檢索以及基於影象描述符的搜尋

1 - 引言 在影象識別中,我們通常將圖片的特徵提取出來,並使用這些主要特徵來進行識別。 在OpenCV中提供了許多特徵檢測演算法,下面讓我們來學習一下怎麼使用這些演算法 2 - 特徵定義 粗略的講,特徵就是有意義的影象區域,該區域具有獨特性或易於識別性。因此,角點以及高密度區域

計算機視覺空間域濾波基礎

一、背景知識 1.空間域 2.運算元 3.變換函式 二、一些基本的灰度變換函式 1.影象反轉

計算機視覺基礎篇

一、光和電磁波譜 二、彩色模型 1.RGB彩色模型 2.HSV彩色模型 3.從RGB到HSV的彩色轉換 4.從HSV到RGB的彩色轉換

計算機視覺特徵檢測/提取feature detection/extraction

關鍵點檢測和匹配流水線四個階段 一、背景知識 1. 影象特徵 2. 數字函式的一階導數和二階導數 3. 導數與影象特徵關係 二

計算機視覺頻率域濾波器

一、濾波器 1. 基本濾波公式 2. 濾波步驟 3. 低通濾波器與高通濾波器 二、低通濾波器(平滑影象)

計算機視覺頻率域濾波基礎

一、數學預備知識 1. 傅立葉級數 二、基本概念 1. 頻率域 2. 複數 3. 尤拉公式

計算機視覺空間域濾波器

一、平滑空間濾波器 1. 平滑線性濾波器(均值濾波器) 2. 統計排序(平滑非線性)濾波器 二、銳化空間濾波器

計算機視覺影象分割

一、閾值處理 1. 基礎知識 2. 基本的全域性閾值處理 3. 用Otsu方法的全域性閾值處理 4. 用影象平滑改善全域性閾值處理 5. 利用邊

計算機視覺

xtra roc 分類 match open 提取 水平 histogram svm 濾波和邊緣檢測 1. 空間濾波和頻域濾波   線性濾波和非線性濾波   滑動濾波:   blur 和 boxfilter、高斯濾波器是真正的低通濾波器、與boxfilter相比沒有振鈴現象

計算機視覺提取Cifar-10資料集的HOG、HSV特徵並使用神經網路進行分類

1 - 引言 之前我們都是將整張圖片輸入進行分類,要想進一步提升準確率,我們就必須提取出圖片更容易區分的特徵,再將這些特徵當做特徵向量進行分類。在之前我們學了一些常用的影象特徵,在這次實驗中,我們使用了兩種特徵 梯度方向直方圖(HOG) 顏色直方圖(HSV)

計算機視覺構建兩層的神經網路來分類Cifar-10資料集

1 - 引言 之前我們學習了神經網路的理論知識,現在我們要自己搭建一個結構為如下圖所示的神經網路,對Cifar-10資料集進行分類 前向傳播比較簡單,就不在贅述 反向傳播需要注意的是,softmax的反向傳播與之前寫的softmax程式碼一樣。神經網路內部的反向傳播權重偏導就是前面

計算機視覺使用Softmax分類Cifar-10資料集

1 - 引言 這次,我們將使用Softmax來分類Cifar-10,過程其實很之前使用的SVM過程差不多,主要區別是在於損失函式的不同,而且Softmax分類器輸出的結果是輸入樣本在不同類別上的概率值大小,Softmax分類器也叫多項Logistic迴歸 線性模型:

計算機視覺使用SVM分類Cifar-10資料集

1 - 引言 之前我們使用了K-NN對Cifar-10資料集進行了圖片分類,正確率只有不到30%,但是還是比10%高的[手動滑稽],這次我們將學習使用SVM分類器來對Cafi-10資料集實現分類,但是正確率應該也不會很高 要想繼續提高正確率,就要對影象進行預處理和特徵的選取工作,而不

計算機視覺使用K-NN分類器對CIFAR-10進行分類

1 - 引言 之前我們學習了KNN分類器的原理,現在讓我們將KNN分類器應用在計算機視覺中,學習如何使用這個演算法來進行圖片分類。 2 - 準備工作 建立專案結構如圖所示 在datasets檔案中下載資料集Cifar-10 k_nearest_neighbo

計算機視覺目標檢測與識別

1 - 引言 目標檢測和識別,是計算機視覺最常見的挑戰之一。 目標檢測和識別的區別在於:目標檢測是用來確定影象的某個區域是否含有要識別的物件,而識別是程式識別物件的能力。識別通常只處理已檢測到物件的區域。 在計算機視覺中有很多目標檢測和識別的技術 梯度直方圖(Hist

計算機視覺人臉檢測和識別

1 - 引言 之前我們學習了機器學習和數字影象處理的相關知識,瞭解了基本的概念理論和OpenCV和TensorFlow框架的使用,現在我們可以結合這些知識與工具寫出屬於我們自己的計算機視覺專案,本文主要介紹瞭如何使用OpenCV提供的函式來構建一個人臉識別和檢測的應用 2 - Haa

計算機視覺-opencv之createTrackbar()詳解

摘要: 我學習openCV3看的是《學習openCV3》這本書,很厚的一本,不知道是不是因為自己看的還不是很多,個人覺得裡面的有些重要函式講的不是很詳細,比如createTrackbar()這個函式,這個函數出現在這本書的第三個例項程式,書中只是說明了這是一個建立滾動條的程式,然而對裡面的引數講解以及與他相

opencv 視覺項目學習筆記 基於 svm 和 knn 車牌識別

its ++ eas -a rect() repr poi obj std 車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測圖像中感興趣區域; 2)特征提取: 對字符圖像集中的每個部分進行提取; 3)分類: 判斷圖像快是不是車牌或者 每

Caffe視覺權重及輸出視覺用Deep Visualization Toolbox實現

Caffe視覺化(二):權重及輸出視覺化(用Deep Visualization Toolbox實現) 本文記錄了博主在研究Caffe權重及輸出視覺化過程中發現的工具包,包括工具包的安裝、使用和調整(以適應自定義網路)的相關內容。更新於2018.10.26。 文章目錄