资讯动态

【图像检测】基于直方图实现火灾检测matlab代码

发布时间:2026/8/27 7:52:17 来源:尧图企业网站定制
1 简介直方图是表达一副图像灰度级分布情况的关于统计信息的灰度级函数。它反映了灰度级与出现这种灰度的概率间的对应关系其横坐标是灰度级纵坐标是该灰度级出现的频度。对于高对比度图像的直方图其灰度级的分布范围宽且较均匀而对比度低的图像其直方图分布区间窄且集中于灰度级的某一部分因此直方图可以表征图像的一些重要特征信息。直方图均衡化处理是空域处理技术的基础。它是通过灰度值的累积函数把原图像的直方图变成均匀分布的直方图即把相对集中的灰度级分布进行扩展通过增加像素灰度级分布的动态范围使对比度得到增加[76]达到增强图像整体对比度的效果。a2 部分代码clear all; close all; clc; imgdouble(imread(flame2.jpg)); imshow(img,[]); [m n]size(img); imgsqrt(img); %伽马校正 % HOG特征提取 %下面是求边缘 fy[-1 0 1]; %定义竖直模板 fxfy; %定义水平模板 Iyimfilter(img,fy,replicate); %竖直边缘 Iximfilter(img,fx,replicate); %水平边缘 Iedsqrt(Ix.^2Iy.^2); %边缘强度 IphaseIy./Ix; %边缘斜率有些为inf,-inf,nan其中nan需要再处理一下 %下面是求cell step16; %step*step个像素作为一个单元 orient9; %方向直方图的方向个数 jiao360/orient; %每个方向包含的角度数 Cellcell(1,1); %所有的角度直方图,cell是可以动态增加的所以先设了一个 ii1; jj1; for i1:step:m %如果处理的m/step不是整数最好是i1:step:m-step ii1; for j1:step:n %注释同上 tmpxIx(i:istep-1,j:jstep-1); tmpedIed(i:istep-1,j:jstep-1); tmpedtmped/sum(sum(tmped)); %局部边缘强度归一化 tmpphaseIphase(i:istep-1,j:jstep-1); Histzeros(1,orient); %当前step*step像素块统计角度直方图,就是cell for p1:step for q1:step if isnan(tmpphase(p,q))1 %0/0会得到nan如果像素是nan重设为0 tmpphase(p,q)0; end angatan(tmpphase(p,q)); %atan求的是[-90 90]度之间 angmod(ang*180/pi,360); %全部变正-90变270 if tmpx(p,q)0 %根据x方向确定真正的角度 if ang90 %如果是第一象限 angang180; %移到第三象限 end if ang270 %如果是第四象限 angang-180; %移到第二象限 end end angang0.0000001; %防止ang为0 Hist(ceil(ang/jiao))Hist(ceil(ang/jiao))tmped(p,q); %ceil向上取整使用边缘强度加权 end end HistHist/sum(Hist); %方向直方图归一化 Cell{ii,jj}Hist; %放入Cell中 iiii1; %针对Cell的y坐标循环变量 end jjjj1; %针对Cell的x坐标循环变量 end %下面是求feature,2*2个cell合成一个block,没有显式的求block [m n]size(Cell); featurecell(1,(m-1)*(n-1)); for i1:m-1 for j1:n-1 f[]; f[f Cell{i,j}(:) Cell{i,j1}(:) Cell{i1,j}(:) Cell{i1,j1}(:)]; feature{(i-1)*(n-1)j}f; end end %到此结束feature即为所求 %下面是为了显示而写的 llength(feature); f[]; for i1:l f[f;feature{i}(:)]; end figure mesh(f)3 仿真结果4 参考文献[1]赵丽娜, 徐常志, 叶俊健, 陈晓波, 邓伟锋. (2020). 基于matlab的火灾视频探测技术. 工业技术创新, 7(3), 4.

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价