您的位置:首页 > 其它

CEDD(Color and Edge Directivity Descriptor)学习篇

2013-08-12 16:44 666 查看
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维的特征向量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: