顏色直方圖和顏色矩
來源:http://www.xuebuyuan.com/2019161.html
1、顏色直方圖
顏色直方圖所描述的是不同色彩在整幅影象中所佔的比例,而並不關心每種色彩所處的空間位置,即無法描述影象中的物件或物體。顏色直方圖特別適於描述那些難以進行自動分割的影象。
顏色直方圖最常用的顏色空間是RGB顏色空間,因為大部分的數字影象都是用這種顏色空間表達但是它並不符合人們對顏色相似性的主觀判斷。因此,有人提出了基於HSV空間、Luv空間和Lab空間的顏色直方圖,因為它們更接近於人們對顏色的主觀認識。其中HSV空間是直方圖最常用的顏色空間。它的三個分量分別代表色彩(Hue)、飽和度(Saturation)和值(Value)。
計算顏色直方圖需要將顏色空間劃分成若干個小的顏色區間,每個小區間成為直方圖的一個bin。這個過程稱為顏色量化(color quantization),計算顏色落在每個小區間內的畫素數量可以得到顏色直方圖。顏色量化有許多方法,例如向量量化、聚類方法或者神經網路方法。最為常用的做法是將顏色空間的各個分量(維度)均勻地進行劃分。相比之下,聚類演算法則會考慮到影象顏色特徵在整個空間中的分佈情況,從而避免出現某些bin中的畫素數量非常稀疏的情況,使量化更為有效。另外,如果影象是RGB格式而直方圖是HSV空間中的,我們可以預先建立從量化的RGB空間到量化的HSV空間之間的查詢表(look-up table),從而加快直方圖的計算過程。
上述的顏色量化方法會產生一定的問題。設想兩幅影象的顏色直方圖幾乎相同,只是互相錯開了一個bin,這時如果我們採用L1距離或者尤拉距離計算兩者的相似度,會得到很小的相似度值。為了克服這個缺陷,需要考慮到相似但不相同的顏色之間的相似度。一種方法是採用二次式距離。另一種方法是對顏色直方圖事先進行平滑過濾,即每個bin中的畫素對於相鄰的幾個bin也有貢獻。這樣,相似但不相同顏色之間的相似度對直方圖的相似度也有所貢獻。
選擇合適的顏色小區間(即直方圖的bin)數目和顏色量化方法與具體應用的效能和效率要求有關。一般來說,顏色小區間的數目越多,直方圖對顏色的分辨能力就越強。然而,bin的數目很大的顏色直方圖不但會增加計算負擔,也不利於在大型影象庫中建立索引。而且對於某些應用來說,使用非常精細的顏色空間劃分方法不一定能夠提高檢索效果,特別是對於不能容忍對相關影象錯漏的那些應用。另一種有效減少直方圖bin的數目的辦法是隻選用那些數值最大(即畫素數目最多)的bin來構造影象特徵
2、顏色矩
從影象中提取顏色特徵時,很多演算法都先要對影象進行量化處理。量化處理容易導致誤檢,並且產生的影象特徵維數較高,不利於檢索。
stricker和0reng0提出了顏色矩的方法[1],顏色矩是一種簡單有效的顏色特徵表示方法,有一階矩(均值,mean)、二階矩(方差,viarance)和三階矩(斜度,skewness)等,**由於顏色資訊主要分佈於低階矩中,所以用一階矩,二階矩和三階矩足以表達影象的顏色分佈,**顏色矩已證明可有效地表示影象中的顏色分佈,因此,影象的顏色矩一共只需要9個分量(3個顏色分量,每個分量上3個低階矩),與其他的顏色特徵相比是非常簡潔的。該方法的優點在於:不需要顏色空間量化,特徵向量維數低;但實驗發現該方法的檢索效率比較低,因而在實際應用中往往用來過濾影象以縮小檢索範圍。