您的位置:首页 > 其它

MPEG-7描述子(4)——颜色结构描述子CSD

2016-03-01 18:41 197 查看
颜色结构描述符是一个颜色特征描述符,它既包括颜色内容信息(类似于颜色直方图),又包括内容的结构信息。其主要功能是图像与图像的匹配,一般用于静态图像检索。它通过由几个图像采样组成的结构元素,表达了一幅图像中局部颜色结构信息,虽然它与颜色直方图相关,但并不相同:不是突出某种颜色个别图像采样的相对频数,而是突出包含某种颜色图像采样的结构化元素的相对频数。所以,与图像直方图不同,该描述符能够区别如图所示的(a)和(b)两幅图像,给定的颜色Cm以同样的数目存在,但是具有给定颜色的像素组的结构却是不同:(a)是高度结构化的颜色,(b)是高度非结构化的颜色。



两幅具有不同颜色结构的图


CSD原理

1 颜色量化

颜色结构描述符使用HMMD颜色空间定义,允许将颜色空间量化成256,128,64和32维。对HMMD颜色空间的量化是在5个颜色子空间上进行的。首先,将HMMD颜色空间沿着Diff轴划分成5个子空间:0、1、2、3和4,Diff的范围从0到255,子空间划分的分割点是6、20、60、110。接着,对每个颜色子空间沿着Hue和Sum轴进行非均匀量化,不同直方图位数对应的量化技术参见下表,下图给出了128维的量化示意图。

不同直方图维数对应的量化级数






2 结构化元素空间确定

值得注意的是,该描述符对图像的采样数固定为64。结构化元素的空间范围随着图像分辨率的大小进行调整。下面的规则用于确定结构化元素的空间范围:

p=max(0,round(0.5,log2(width∗height)−8))

K=2p

E=8∗k

其中,width和height分别为图像的宽和高,E*E为结构化元素的空间范围,K是子采样要素,取值可以是K={1,2,4,8,••••},K=1表示没有子采样,K=2表示水平和垂直方向的子采样数目为2。例如对于320*240的图像,K=1,E=8,结构化元素是8*8的像素,没有子采样。而对于640*480的图像,K=2,E=16,结构化元素的空间范围是16*16,子采样是2*2。下图给出了上述两种情况下的采样示意,只显示了图像的一部分,结构化元素的出事位置位于图像的左上角。



3 结构量化直方图

使用8*8的结构化元素内的量化直方图,来表达结构化元素内的颜色信息,同时保留了一定程度上的颜色含量,累加后得到结构化直方图。

具体实现如下:

1. 用8*8的结构化元素扫描图像,统计包含在其中的某种量化颜色的数目,得到结构化元素内的颜色直方图。

2. 根据结构化元素内的颜色直方图,对结构量化直方图相应的维数进行累加。



3. 重复(1)~(2)直至结构化元素遍历整幅图像,得到结构量化直方图并进行非线性量化。

简单的说,首先,量化颜色空间,设定直方图维数为256,确定子采样个数。用8*8的窗口扫描的时候,所关心的是在该窗口中是否包含某种颜色,而不关心出现在8*8的窗口中相同颜色的个数(根据,结构量化直方图累加示意图也可以看出来,三种颜色在8*8窗口的数目并不相同,然而都执行了加一的操作)。最后,根据映射表(256->128,256->64,256->32)得到最后的直方图。

CSD实现的接口

ColorStructureExtractionTool::ColorStructureExtractionTool()
int ColorStructureExtractionTool::setSourceImage(MomVop* img)
unsigned long ColorStructureExtractionTool::extract(MomVop *img)
unsigned long ColorStructureExtractionTool::extract(void)
unsigned long ColorStructureExtractionTool::extract(int descriptorSize)
unsigned long ColorStructureExtractionTool::extract(MomVop *img, int  descriptorSize)
ColorStructureDescriptor* ColorStructureExtractionTool::GetDescriptor()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mpeg7 颜色描述符 CSD