一、简介

1 颜色特征\ 颜色特征是图像检索中应用最为广泛的视觉特征。颜色特征无需进行大量计算。只需将数字图像中的像素值进行相应转换,表现为数值即可。因此颜色特征以其低复杂度成为了一个较好的特征。

在图像处理中,我们可以将一个具体的像素点所呈现的颜色分多种方法分析,并提取出其颜色特征分量。比如通过手工标记区域提取一个特定区域(region)的颜色特征,用该区域在一个颜色空间三个分量各自的平均值表示,或者可以建立三个颜色直方图等方法。

颜色直方图:\ 颜色直方图用以反映图像颜色的组成分布,即各种颜色出现的概率。从512x512的灰度图像中提取维度为k的颜色直方图,将256种灰度值分为k个区间,然后计算每个区间中像素点总数为多少。图像直方图对图像的物理变换是不敏感的。因此常提取颜色特征并用颜色直方图应用于衡量和比较两幅图像的全局差。\ 颜色直方图也有其缺点:由于颜色直方图是全局颜色统计的结果,因此丢失了像素点间的位置特征。可能有几幅图像具有相同或相近的颜色直方图,但其图像像素位置分布完全不同。因此,图像与颜色直方图得多对一关系使得颜色直方图在识别前景物体上不能获得很好的效果。

2 形状特征\ 形状特征的表达必须以对图像中物体或区域的分割为基础。 两种经典的算法是SIFT和HOG。 Sift是先找特征点,而hog是对图片进行分割。

SIFT在尺度空间中所提取的图像局部特征点。SIFT特征点提取较为方便,对于图像的缩放等变换比较鲁棒,得到了广泛的应用。

SIFT算法的步骤:

①构造尺度空间 ,把图像按比例进行缩小\ ②搜索尺度空间中的关键点 ,关键点就是角点或者拐点\ ③去除可能的噪音点 ,非极大值抑制\ ④计算方向构造128维的特征向量 ,计算每个特征点的向量,每个向量是128维。

HOG (Histogram of Oriented Gradient)用于检测物体的特征描述,通过计算图像局部区域的梯度方向直方图来构建特征。HOG特征特别适合于做图像中的人体检测 ,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性。 在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。

HOG特征步骤:

假设每个区域都有关键的特征,所以是对每个区域都进行操作。\ ①输入图片 ,Gamma归一化\ ②计算梯度:通过差分计算出图像在水平方向上及垂直方向上的梯度,然后得到各个像素点的梯度的幅值及方向\ ③将整个窗口划分成大小相同互不重叠的细胞单元cell(如8×8像素),计算出每个cell的梯度大小及方向.然后将每像素的梯度方向在0−180(无向:0-180,有向:0-360)平均分为9个bins,统计每个cell的梯度直方图,即可形成每个cell的descriptor.\ ④ 将2×2个相邻的cell组成大小为16×16的像素块即block.依次将block大小的滑动窗口从左到右从上到下滑动,求其梯度方向直方图向量,一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。

Haar特征

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。\ \ 3 纹理特征\ 纹理是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性。纹理具有三大标志。

某种局部序列性不断重复;\ 非随机排列;\ 纹理区域内大致为均匀的统一体;\ 不同于灰度、颜色等图像特征,纹理通过像素及其周围空间邻域的灰度分布来表现,即局部纹理信息。另外,局部纹理信息不同程度上的重复性,就是全局纹理信息。

纹理特征体现全局特征的性质的同时,它也描述了图像或图像区域所对应景物的表面性质。与颜色特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算。在模式匹配中,这种区域性的特征具有较大的优越性,不会由于局部的偏差而无法匹配成功。

在检索具有粗细、疏密等方面较大差别的纹理图像时,利用纹理特征是一种有效的方法。但当纹理之间的粗细、疏密等易于分辨的信息之间相差不大的时候,通常的纹理特征很难准确地反映出人的视觉感觉不同的纹理之间的差别。

优点:

  1. 具有旋转不变性
  2. 具有良好的抗噪性能。\ 缺点:
  3. 当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差
  4. 有可能受到光照、反射情况的影响
  5. 从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理\ \ 统计方法:灰度共生矩阵(GLCM),灰度共生矩阵中的四个关键特征:能量、惯量、熵和相关性。 其他的统计方法,还包括图像的自相关函数,半方差图等。图像局部区域的自相关函数、灰度游程矩阵以及灰度分布的各种统计量,是常用的数字纹理特征。

LBP\ LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征。\ 原始的LBP算子定义为在33的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,33邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。

灰度共生矩阵\ 共生矩阵用两个位置的像素的联合概率密度来定义,它不仅反映亮度的分布特征,也反映具有同样亮度或者接近亮度的像素之间的位置分布特性,是有关图像亮度变化的二阶统计特征。灰度共生矩阵(GLCM)是定义一组纹理特征的基础。\ 取图像(N×N)中任意一点 (x,y)及偏离它的另一点 (x+a,y+b),设该点对的灰度值为(g1,g2)。令点(x,y)在整个画面上移动,则会得到各种 (g1,g2)值,设灰度值的级数为 k,则(g1,g2) 的组合共有 k^2种。对于整福图像,统计出每一种(g1,g2)值出现的次数,然后排列成一个方阵,在用(g1,g2) 出现的总次数将它们归一化为出现的概率P(g1,g2),这样的方阵称为灰度共生矩阵。\ 距离差分值(a,b) 取不同的数值组合,可以得到不同情况下的联合概率矩阵。(a,b)取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取(1,0)、(1,1)、(2,0)等小的差分值。当 a=1,b=0时,像素对是水平的,即0度扫描;当a=0,b=1 时,像素对是垂直的,即90度扫描;当 a=1,b=1时,像素对是右对角线的,即45度扫描;当 a=-1,b=-1时,像素对是左对角线,即135度扫描。\ 若将图像的灰度级定为N级,那么共生矩阵为N×N矩阵,可表示为M(Δx,Δy)(h,k),其中位于(h,k)的元素的值表示一个灰度为h而另一个灰度为k的两个相距为(Δx,Δy)的像素对出现的次数。\ 共生矩阵实际上是两个像素点的联合直方图,对粗纹理的区域,其灰度共生矩阵的值较集中于主对角线附近。因为对于粗纹理,像素对趋于具有相同的灰度。而对于细纹理的区域,其灰度共生矩阵中的值则散布在各处。

下图为一个简单的例子:\ \ 图a为原图像,最大灰度级为16。为表示方便,这里将灰度级数减小为4级,图a变为图b的形式。这样(f1,f2)取值范围便为[0,3]。取不同的间隔,将(f1,f2)各种组合出现的次数排列起来,就可得到图e\~g所示的灰度共生矩阵。\ \ 图e表示图b中(x,y)与偏离它的(x+1,y+0)构成点对时,(f1,f2)取值的情况(填充黄色部分为f1取0,f2取1时的情况,由图b填充易知共10种)。同理,f,g分别表示图c,d中(x,y)分别于点(x+1,y+1),(x+2,y+0)构成的点对(f1,f2)出现的情况(图c填充黄色部分表示f1取0,f2取0时,对角线点对(0,0)出现的情况,共8种:图d填充黄色部分表示f1取0,f2取2时水平点对(0,2)出现的情况,共9种)。例如,对于a=1,b=0,点对中(0,1)的组合共出现了10次。对比可以看出,(0,1),(1,2),(2,3)和(3,0)均有较高的出现频数。图b表明,图像中存在明显的左上右下方向的纹理。

距离(a,b)的取值不同,灰度共生矩阵中的值不同。a和b的取值要根据纹理周期分布的特征来选择,对于较细的纹理,选取(1,0),(1,1),(2,0)等这样的值是有必要的。a,b取值较小对应于变化缓慢的纹理图像,其灰度共生矩阵对角线上的数值较大。纹理的变化越快,则对角线上的数值越小,而对角线两侧的值增大。

为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种:\ (1)能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。若灰度共生矩阵的元素值相近,则能量ASM较小,表示纹理细致;相反,如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大,表明一种较均一和规则变化的纹理模式。\ (2)对比度:反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。\ (3)相关:它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。\ (4)熵:是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。\ (5)逆差距: 反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。

4、边缘特征\ 边缘检测旨在检测一张数字图像中有明显变化的边缘或者不连续的区域。边缘是一幅图像中不同区域之间的边界线,通常一个边缘图像是一个二值图像。边缘检测的目的是捕捉亮度急剧变化的区域,而这些区域通常是我们关注的。

理想情况下,对所给图像应用边缘检测器可以得到一系列连续的曲线,用于表示对象的边界。应用边缘检测将会大大减少图像数据量,留下图像的重要结构。然而,从普通图片上提取的边缘往往被图像的分割所破坏,这就需要边缘检测算法的准确性。常见的边缘检测算法:canny算子和sobel算子。

二、源代码

``` % 程序名称: 主程序 %main() %9.4.7

clc ,clear all, close all

% 读取图像文件 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% imgsarray = readimages(); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 彩色图像灰度化 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% colorflameimg1 = imgsarray(1).img; %自己选择K值,表示读取该文件夹下随意的第几幅图像。 GrayImg = RGBtoGray(colorflameimg1);

figure(10),imshow(colorflameimg1),title('原始图像') %第一幅图像 figure(11),imshow(uint8(GrayImg.MaxIntensity)),title('最大值法') figure(12),imshow(uint8(GrayImg.MeanIntensity)),title('平均值法') figure(13),imshow(uint8(GrayImg.WeightIntensity)),title('加权平均值法') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 利用5种边缘检测算子进行边缘检测 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ExtraEdge = operator5(colorflameimg1); figure(14),imshow(ExtraEdge.sobeledge),title('边缘提取(sobel算子)') figure(15),imshow(ExtraEdge.prewittedge),title('边缘提取(prewitt算子)') figure(16),imshow(ExtraEdge.robertsedge),title('边缘提取(roberts算子)') figure(17),imshow(ExtraEdge.logedge),title('边缘提取(log算子)') figure(18),imshow(ExtraEdge.cannyedge),title('边缘提取(canny算子)') function RGBPixelDis = RGBdistribution() %9.4.4 % 函数功能:估计RGB分量的分布 % 输入参数:不需要输入参数 % 输出参数:RGBPixelDis结构体,包含 RGB三分量的分布 RPixelDis GPixelDis BPixel_Dis

%获取各种类型的图片 [~,pathname] = uigetfile({'.jpg;.bmp;.tif;.png;.gif','All Image Files';'.','All Files'}); cd(pathname); %获取当前路径下的所有jpg文件 files = dir('.jpg'); %获取当前jpg类型图片的个数 K = size(files,1); %三通道初始值 RPixelDis = 0; GPixelDis = 0; BPixel_Dis = 0;

for i=1:K %20行~24行:对若干张图片,依次获取三通道分量 temp = imread(files(i).name); R = temp(:,:,1); G = temp(:,:,2); B = temp(:,:,3);

% x是各个像素级 0~256,counts 是每个像素级出现的次数
%综合起来的意思就是:counts和x分别是直方图 (像素级出现次数)和(像素级)
[counts,x] = imhist(R);
% 红色分量分布加上每个像素级出现的次数
RPixel_Dis = RPixel_Dis + counts;[counts,x] = imhist(G);
GPixel_Dis = GPixel_Dis + counts;[counts,x] = imhist(B);
BPixel_Dis = BPixel_Dis + counts;

end

%RGBPixelDis结构体,包含RGB三种分量的分布:RPixelDis GPixelDis BPixelDis; RGBPixelDis.RPixelDis = RPixelDis; RGBPixelDis.GPixelDis = GPixelDis; RGBPixelDis.BPixelDis = BPixelDis; function ExtraEdge = operator5(colorimg) %9.4.3 % 函数功能:利用5种边缘检测算子进行边缘检测 % 输入参数:colorimg 彩色图像 % 输出参数:Gray_Img 结构体,包含5种算子提取的边缘

%彩色图像转化为灰度图像 GralImg = rgb2gray(colorimg); %进行sobel边缘检测(一阶导算子) ExtraEdge.sobeledge = edge(GralImg,'sobel'); %进行prewitt边缘检测(一阶导算子) ExtraEdge.prewittedge = edge(GralImg,'prewitt'); %进行roberts边缘检测(一阶导算子) ExtraEdge.robertsedge = edge(Gral_Img,'roberts'); %进行拉普拉斯(二阶导算子) ```

三、运行结果

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

四、备注

版本:2014a

【火灾检测】基于matlab实现图像特征火灾检测相关推荐

  1. code epi 光场_基于EPI的光场图像特征点检测方法与流程

    本发明属于计算机视觉技术领域,涉及一种基于epi的光场图像特征点检测方法. 背景技术: 光场成像技术是计算机视觉领域的热点研究方向,光场是一个研究的热点领域,简而言之,光场是一束光在传播过程中,所包含 ...

  2. 基于MATLAB的图像融合设计

    基于MATLAB的图像融合设计 摘 要 图像融合能够将不同类型传感器获取的同一对象的图像数据进行空间配准.并且采用一定的算法将不同类型的传感器获取的同一对象的图像数据所含用的信息优势或互补性有机地结合 ...

  3. 基于matlab的图像形状与分类毕业设计(含源文)

    基于matlab的图像形状与分类 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务 ...

  4. 基于matlab的图像形状与分类的方法比较

    基于matlab的图像形状与分类的方法比较 分类就是根据被识别对象的若干特征将其归入某一类别. 形状特征 (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们 ...

  5. matlab人工选择阈值进行分割,基于MATLAB的图像阈值分割算法的研究

    [摘要]:图像分割是一种重要的数字图像处理技术.本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值.边缘检测.区域提取等方法以及分水岭算法.针对各种阈值分割算法,本文在最后做了详细的 ...

  6. 基于MATLAB的图像去雾系统

    基于MATLAB的图像去雾系统 (一)图像去雾基础原理 1.雾霭的形成机理 雾实际上是由悬浮颗粒在大气中的微小液滴构成的气溶胶,常呈现乳白色,其底部位于地球表面,所以也可以看作是接近地面的云.霭其实跟 ...

  7. matlab车牌识别 复杂环境,基于MATLAB复杂背景车牌识别检测系统

    基于MATLAB复杂背景车牌识别检测系统 1.选题目的和意义 在复杂背景车牌识别检测系统中,由于拍摄时的光照条件.牌照的整洁程度的影响,和摄像机的焦距调整.镜头的光学畸变所产生的噪声都会不同程度地造成 ...

  8. matlab中图像的阈值分割,基于MATLAB的图像阈值分割技术汇总

    数字图像处理课程论文 基于MATLAB的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB的分析.通过双峰法,迭 代法以及OUTS法三种算法来实现图像阈值分割,并且就这三种算法做了 ...

  9. 加权平均法融合图像matlab,基于MATLAB的图像融合算法

    内容介绍 原文档由会员 小甜甜 发布 基于MATLAB的图像融合算法 1.9万字 34页 摘要 图像融合能够将不同类型传感器获取的同一对象的图像数据进行空间配准.并且采用一定的算法将各图像数据所含的信 ...

最新文章

  1. fot mac matlab_matlab for mac的 安装-亲手实验
  2. 方案类:城中村社区网运营计划书-地方社区发展经典案例
  3. Java常用类之要点总结
  4. Winforn中导入Excel并显示然后获取多选框选中的内容
  5. 本工作簿不能再使用其他新字体_1.2.16 EXCEL篇之关于工作表的操作合集
  6. 【渝粤题库】国家开放大学2021春3907安全原理题目
  7. h5获取http请求头_React 前端获取http请求头信息
  8. jmeter 使用命令行执行
  9. c语言中strncpy的用法,C语言中函数strcpy ,strncpy ,strlcpy的用法【转】
  10. bootice添加黑苹果引导_Clover(四叶草)引导多系统(Linux亦可),黑苹果引导教程
  11. 斐讯K1、K2、K2P 刷机、刷入Breed 辅助工具
  12. java showtype_GitHub - kedarui/showapi_sdk_java: showapi_sdk_java
  13. 运维软件推荐(附带软件百度网盘分享)
  14. 怎么批量给文件夹名称加上数字序号前缀?怎么对文件夹名称进行编号排序?
  15. 广东省取消职称英语和计算机,职称评审!这些省份短期内不会取消职称英语、计算机!...
  16. java 网站 分类
  17. Mark,road-stone 2012-7-7
  18. Hark的数据结构与算法练习之归并排序
  19. 绝对良心提供百度网盘的jdk1.8源码下载包含sun包的
  20. 【院士等重磅嘉宾齐聚珠海】第二届人工智能与工业设计国际会议 (AIID 2022)

热门文章

  1. songtaste网站歌曲真实地址获取
  2. xiaoxia的vim配置
  3. 内核热补丁 kpatch-build 编译脚本对 CROSS_COMPILE 的妙用
  4. R语言|数据预处理方法
  5. 水箱建模最小二乘法_幼儿园大班就能背出九九乘法表,和数学好真没什么关系……...
  6. 电子计算机厂 四月份生产计,分数除分数练习题.doc
  7. 斐讯N1盒子安装lnmp搭建可道云kodexplorer私有网盘教程
  8. 河北省中小学计算机教室管理制度,河北省中小学计算机教室管理制度.doc
  9. linux挂载ssd到根目录下,linux启动时挂载ssd错误
  10. 基于SpringBoot的个人理财系统