MPEG-7描述子(4)——颜色结构描述子CSD
2016-03-01 18:41
197 查看
颜色结构描述符是一个颜色特征描述符,它既包括颜色内容信息(类似于颜色直方图),又包括内容的结构信息。其主要功能是图像与图像的匹配,一般用于静态图像检索。它通过由几个图像采样组成的结构元素,表达了一幅图像中局部颜色结构信息,虽然它与颜色直方图相关,但并不相同:不是突出某种颜色个别图像采样的相对频数,而是突出包含某种颜色图像采样的结构化元素的相对频数。所以,与图像直方图不同,该描述符能够区别如图所示的(a)和(b)两幅图像,给定的颜色Cm以同样的数目存在,但是具有给定颜色的像素组的结构却是不同:(a)是高度结构化的颜色,(b)是高度非结构化的颜色。
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。下图给出了上述两种情况下的采样示意,只显示了图像的一部分,结构化元素的出事位置位于图像的左上角。
具体实现如下:
1. 用8*8的结构化元素扫描图像,统计包含在其中的某种量化颜色的数目,得到结构化元素内的颜色直方图。
2. 根据结构化元素内的颜色直方图,对结构量化直方图相应的维数进行累加。
3. 重复(1)~(2)直至结构化元素遍历整幅图像,得到结构量化直方图并进行非线性量化。
简单的说,首先,量化颜色空间,设定直方图维数为256,确定子采样个数。用8*8的窗口扫描的时候,所关心的是在该窗口中是否包含某种颜色,而不关心出现在8*8的窗口中相同颜色的个数(根据,结构量化直方图累加示意图也可以看出来,三种颜色在8*8窗口的数目并不相同,然而都执行了加一的操作)。最后,根据映射表(256->128,256->64,256->32)得到最后的直方图。
两幅具有不同颜色结构的图
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()
相关文章推荐
- CSD(Canonic signed digit)正则有符号数
- MPEG-7描述子(3)——颜色布局描述子CLD
- iOS的Cocos2d-x工程载入CocoStudio制作的动画素材'xxx.csb/csd'文件,添加自定义用户头像图片到动画。
- 安装设备 PrimeSense 1.09_openni2
- CXF与Spring集成:自定义验证权限以及日志记录
- 闲来吟诗一首
- Javascript 编程小技巧总结(部分内容借鉴他人)
- 前端编码规范(2)—— HTML 规范
- Mysql 存储过程生成订单号,解决分布式问题
- Fragment——建立灵活动态的UI
- 前端编码规范(1)—— 一般规范
- JAVA_反射
- 如何理解HTTP协议的 “无连接,无状态” 特点?
- Maven(九)”编码 gbk 的不可映射字符“ 问题解决方案
- 心情随笔
- Unity 基础
- 32. Longest Valid Parentheses
- Mysql通用查询方法(采用泛型确定输入类型,BeanUtils进行对象封装)
- UVa 12186 Another Crisis dp:树上dp
- 输入框回车莫名触发button点击事件