CEDD(Color and Edge Directivity Descriptor)学习篇
cedd是一種綜合顏色和紋理的特征提取方法。
參考論文:FCTH: FUZZY COLOR AND TEXTURE HISTOGRAM :A LOW LEVEL FEATURE FOR ACCURATE IMAGE RETRIEVAL
網上搜索的關于cedd的介紹很少,看得也很是糾結,還有一些細節方面沒有弄很清楚,先寫一下以后備用,慢慢細化。
一、CEDD簡介
??????將圖像劃分成若干預設號碼的分塊,為了提取其中的顏色信息,在 HSV 顏色空間應用一組模糊規則提取模糊關聯直方圖。在一個有三個輸入口的模糊系統應用 20 條模糊規則產生一個 10-bin 的量化直方圖,其中每個 bin 關聯一種預設的顏色,而指定給每個 bin 的分塊號碼可存放一個特征向量。另外在一個有兩個輸入口的模糊系統應用 4 條模糊規則將 10bin 直方圖轉變成 24-bin 的直方圖,以提高了每種顏色的色調;其次提取邊緣的方向性描述子,邊緣直方圖描述子將圖像中的邊緣分為 5 種,分別是水平、垂直、45度 、135 度和無特定方向邊緣,然后把圖像分成若干個小塊,分析小塊內圖像的邊緣性質,判斷屬于哪一種邊緣,最后統計圖像中所有邊緣的信息;最后是描述 CEDD 特征向量的實現。
二、算法流程
(1)輸入圖像,如果圖像過大就進行壓縮。
(2)GrabCut進行圖像分割,利用opencv中的函數
void grabCut(InputArray image, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray
fgdModel, int iterCount, int mode)
得到所選區域中的疑似背景和疑似前景,分別從上往下找到疑似背景的top,從下到上找到疑似背景的bottom,從左到右找到疑似背景的left,從右到左找到疑似背景的right。
(3)將圖像分塊,論文中取1600塊,如果小塊再上一步所計算的top、bottom、 left 、right的區域內則分別計算模糊顏色直方圖和模糊紋理直方圖,否則舍掉。
???????? 紋理:計算紋理時利用每個像素的RGB值的均值。將每個小塊再分為2*2塊,分別計算水平、垂直、45度、135度和無特定方向的描述子,論文中取最大的為此小塊所屬的邊緣類型,程序中根據四個閾值判斷此小塊所屬于的邊緣類型。
??????? 顏色:將圖像轉換到HSV空間計算,對HSV分別計算模糊屬于哪個類別。
????????????????? 如圖:
???????????? ? 將H分量分為8個區間?,如下,根據來判斷H分量模糊屬于哪個區間。
static double tmpHueMembershipValues[] = {0, 0, 5, 10,5, 10, 35, 50,35, 50, 70, 85,70, 85, 150, 165,150, 165, 195, 205,195, 205, 265, 280,265, 280, 315, 330,315, 330, 360, 360};????????????????SV分量類似。根據模糊規則(這一點還沒看懂)來生成一個10bin的量化直方圖。
?????????????? 同樣的利用SV兩個輸入根據模糊規則根據生成的10bin直方圖來生成一個24bin的量化直方圖。
(4)綜合6個紋理區間和14個顏色區間,6*24得到一個144維的模糊混合直方圖,得到一個1*144維的特征向量。
總結
以上是生活随笔為你收集整理的CEDD(Color and Edge Directivity Descriptor)学习篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《mongodb权威指南》学习
- 下一篇: 64位 vs2010 和 opencv