clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')
% 创建一个视频文件读取对象,用于读取'Video.avi'这个文件
vidReader=vision.VideoFileReader('test2.mp4');
% 设置视频读取对象的输出数据类型为double型
vidReader.VideoOutputDataType='double';
% 创建一个可部署的视频播放器对象
vidPlayer = vision.DeployableVideoPlayer;
% 创建一个形状为圆盘的结构元素,半径为8,用于形态学操作
diskElem=strel('disk',8);
% 定义blob分析对象的参数,最小blob面积为100,最大blob面积为1500000
hBlob=vision.BlobAnalysis('MinimumBlobArea',100,...
'MaximumBlobArea',1500000);
% 循环直到视频播放完毕
while ~isDone(vidReader)
vidFrame=step(vidReader);% 读取视频的下一帧
I = rgb2hsv(vidFrame);% 将当前帧从RGB颜色空间转化为HSV颜色空间
% 根据直方图设置,定义通道1的阈值
channel1Min = 0.200;
channel1Max = 0.7;
% 根据直方图设置,定义通道2的阈值
channel2Min = 0.000;
channel2Max = 0.350;
% 根据所选的直方图阈值创建一个掩膜
channel3Min = 0.250;
channel3Max = 0.700;
% 使用形态学开操作对掩膜进行处理,去除小的噪声点
sliderBW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);
Ibwopen=imopen(sliderBW,diskElem);
% 显示处理后的掩膜图像(这行代码被注释掉了,如需显示取消注释)
imshow(Ibwopen);
% 对处理后的掩膜图像进行blob分析,获取blob的面积、质心和边界框
[objArea,objCentroid,bboxOut]=step(hBlob,Ibwopen);
% 在原始视频帧上绘制blob的边界框,并返回新的带有绘制结果的视频帧
Ishape=insertShape(vidFrame,'Rectangle',bboxOut,'Linewidth',4);
% 显示带有绘制结果的视频帧(这两行代码被注释掉了,如需显示取消注释)
step(vidPlayer,Ishape);
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.版本:matlab2022A,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:视频烟雾识别检测 3.内容:基于blob分析法的视频烟雾识别检测matlab仿真。 具体实现步骤如下: 1.将视频转换为帧 2.直方图设置/烟雾颜色检测 3.图像二值化 4.形态学操作 我们提出了一种基于斑点分析概念的烟雾检测算法。在这里,我们发现斑点分析技术能够检测图像和视频中的烟雾部分。 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
基于blob分析法的视频烟雾识别检测matlab仿真.rar (5个子文件)
2.jpg 53KB
1.jpg 24KB
20231125_032750.mp4 5.29MB
code
test2.mp4 3.47MB
Runme.m 2KB
共 5 条
- 1
资源评论
fpga和matlab
- 粉丝: 16w+
- 资源: 2561
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功