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)学习篇相关推荐
- CEDD(Color and Edge Directivity Descriptor)算法
FROM: http://blog.csdn.net/leixiaohua1020/article/details/16883379 颜色和边缘的方向性描述符(Color and Edge Direc ...
- 图像检索:CEDD(Color and Edge Directivity Descriptor)算法
颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) 本文节选自论文<Android手机上图像分类技术的研究>. CEDD具有抽 ...
- LVGL之学习篇(一)
LVGL之学习篇(一) 学习目的 LVGL简介 LVGL本身是一个图形库,前身是litterVGL.其作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以 ...
- 鸟哥的linux私房菜-基础学习篇 读书笔记
从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...
- Objective-C学习篇03—继承
Objective-C学习篇03-继承 大纲: 继承的基本概念 自定义初始化方法 便利构造器方法 重写description方法 一 继承基本概念 程序里的对象和"人类"的对象是一 ...
- MaterialDesign学习篇(二),Toolbar、DrawerLayout的使用
什么是Toolbar Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的.相比Actionbar,T ...
- 边缘直方图描述符(EHD)Edge Histogram Descriptor
这里主要讲如何得到一幅图像的边缘直方图 边缘直方图描述符是MPEG-7中的一个纹理描述符,常用与图像检索. 大致过程:图像划分--->计算子图边缘直方图--->归一化--->计算图像 ...
- 【微信小程序开发学习篇】
微信小程序开发学习篇 概述 相关信息 笔记制作时间:2022-9-25 参考视频:黑马视频 参考文档:微信小程序官方开发文档 文章目录 微信小程序开发学习篇 概述 相关信息 小程序基础 1.数据绑定与 ...
- 脑电EEG代码开源分享 【6. 分类模型-深度学习篇】
往期文章 希望了解更多的道友点这里 0. 分享[脑机接口 + 人工智能]的学习之路 1.1 . 脑电EEG代码开源分享 [1.前置准备-静息态篇] 1.2 . 脑电EEG代码开源分享 [1.前置准备- ...
最新文章
- 如何为jframe设置于右侧滑轮_如何为电脑设置屏保密码?
- FreeRTOS学习笔记4-FreeRTOS配置管理
- SVM原理以及Tensorflow 实现SVM分类(附代码讲了一下原理)
- n1进入recovery模式_oppo n1怎么进recovery
- 题解 luogu P2568 GCD
- 【渝粤教育】电大中专职业应用写作_1作业 题库
- .net 用户控件ascx.cs注册js脚本代码无效果
- mysql 5.7 enum_MYSQL中 ENUM 类型的详细解释
- linux的使用 --- 虚拟机创建CentOS(Intel VT-X)
- java商城系统设计——秒杀
- wps怎么免费导出简历_稻壳儿简历免费手机,手机wps如何免费导出简历?
- typora+gitee图床
- JavaScript:实现NQueen皇后问题算法(附完整源码)
- windows中用注册表删除guest账户
- 【软件测试】测试用例相关知识(六大测试用例设计方法)
- 谈谈c语言中delay的用法
- excel2021 打印圆不圆
- python输入第十个斐波那契数列,0,1,1,2,3,5,8,13,21,34
- 如何查看MySQL的表空间
- 打开应用时出现“你的手机上未安装应用程序”--实际上该应用已经安装的解决方案
热门文章
- Python/WSGI 应用快速入门--转
- 爬虫提取非结构化数据
- solr服务器的查询过程
- 机器学习算法加强——回归
- 图神经网络学习一(浅谈embedding)
- Star: Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易
- 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te
- 从程序员的角度分析微信小程序
- Java8 - 使用CompletableFuture 构建异步应用
- 实战SSM_O2O商铺_15【商铺注册】View层+Controller层之图片上传