【火灾检测】基于matlab实现图像特征火灾检测

【⽕灾检测】基于matlab实现图像特征⽕灾检测
⼀、简介
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
% 读取图像⽂件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% imgs array = read images(); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 彩⾊图像灰度化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% colorflame img1 = imgs array(1).img; %⾃⼰选择K值,表⽰读取该⽂件夹下随意的第⼏幅图像。 Gray Img =
RGBtoGray(colorflame img1);
figure(10),imshow(colorflame img1),title('原始图像') %第⼀幅图像 figure(11),imshow(uint8(Gray Img.Max Intensity)),title('最⼤值简明仁
法') figure(12),imshow(uint8(Gray Img.Mean Intensity)),title('平均值法')
figure(13),imshow(uint8(Gray Img.Weight Intensity)),title('加权平均值法') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 利⽤5种边缘检测算⼦进⾏边缘检测%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Extra Edge = operator5(colorflame img1); figure(14),imshow(Extra Edge.sobel edge),title('边缘提取(sobel算⼦)')
figure(15),imshow(Extra Edge.prewitt edge),title('边缘提取(prewitt算⼦)') figure(16),imshow(berts edge),title('边缘提
合成化学取(roberts算⼦)') figure(17),imshow(Extra Edge.log edge),title('边缘提取(log算⼦)')
figure(18),imshow(Extra Edge.canny edge),title('边缘提取(canny算⼦)') function RGBPixel Dis = RG
B distribution() %9.4.4 % 函数
功能:估计RGB分量的分布 % 输⼊参数:不需要输⼊参数 % 输出参数:RGBPixel Dis结构体,包含 RGB三分量的分布 RPixel Dis
GPixel Dis 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); %三通道初始值 RPixel Dis = 0; GPixel Dis = 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
%RGBPixel Dis结构体,包含RGB三种分量的分布:RPixel Dis GPixel Dis BPixel Dis; RGBPixel Dis.RPixel Dis = RPixel Dis;
RGBPixel Dis.GPixel Dis = GPixel Dis; RGBPixel Dis.BPixel Dis = BPixel Dis; function Extra Edge = operator5(color img) %9.4.3 %
函数功能:利⽤5种边缘检测算⼦进⾏边缘检测 % 输⼊参数:color img 彩⾊图像 % 输出参数:Gray_Img 结构体,包含5种算⼦提取的边
%彩⾊图像转化为灰度图像 Gral Img = rgb2gray(color img); %进⾏sobel边缘检测(⼀阶导算⼦) Extra Edge.sobel edge =
edge(Gral Img,'sobel'); %进⾏prewitt边缘检测(⼀阶导算⼦) Extra Edge.prewitt edge = edge(Gral Img,'prewitt'); %进⾏roberts边缘检
测(⼀阶导算⼦) berts edge = edge(Gral_Img,'roberts'); %进⾏拉普拉斯(⼆阶导算⼦) ```
三、运⾏结果
\ \ \
>山坡羊潼关怀古赏析

本文发布于:2024-09-22 16:32:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/105000.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   特征   纹理   灰度   矩阵   局部   边缘
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议