资源简介
matlab,图像中烟雾检测,可直接运行!!!!!!!!!!!!!!!!!!!!!!!
代码片段和文件信息
tic;
clear all;
close all;
clc;
A = aviinfo(‘smoke.avi‘);
LEN = A.Numframes;%得到视频的帧数
for x = 1 : LEN
pic = imread(strcat(‘smoke‘ int2str(x) ‘.jpg‘));%读入一张图片
pic1 = pic;%pic1中存放的是处理过后的彩色图像
pic_hsv = rgb2hsv(pic);
s = size(pic1);
bw_pic = zeros(s(1) s(2));
for i = 1 : s(1)
for j = 1 : s(2)
if pic_hsv(i j 1) > 0.35 && pic_hsv(i j 1) < 0.65 && ...
pic_hsv(i j 2) > 0.06 && pic_hsv(i j 2) < 0.3 && ...
pic_hsv(i j 3) > 0.5 && pic_hsv(i j 3) <= 1;
pic1(i j 1) = 255;
pic1(i j 2 : 3) = 0;
end
if pic1(i j 1) == 255 && pic1(i j 2) == 0
bw_pic(i j) = 1;
end
end
end
cov_bw_pic = 1 - bw_pic;
fill_pic = imfill(cov_bw_pic ‘holes‘);
fill_pic1 = 1 - fill_pic;
B_pic = bwboundaries(fill_pic1);%得到的是一个P×1的单元
ss = size(B_pic);%ss的值就是连通分量的数量
ss1 = size(B_pic{1 1});%ss1是一个大小为m×2的矩阵
max = ss1(1);
for i = 2 : ss(1)%找到最大的连通区域的边界总个数
ss2 = size(B_pic{i 1});
if ss2(1)> max
max = ss2(1);
end
end
%⑤…………………………将小于最大连通区域的连通分量边界赋零
for k = 1 : ss(1)%将小于最大连通区域的连通分量边界赋零,
%其作用就是将其余小的连通分量与边界隔开
Mid = B_pic{k 1};
ss3 = size(Mid);
if ss3(1) < max
for i = 1 : ss3(1)
fill_pic1(Mid(i 1) Mid(i 2)) = 0;
end
end
end
%反转填充
cov_fill_pic1 = 1 - fill_pic1;
A_fill_pic = imfill(cov_fill_pic1 ‘holes‘);%进行内部填充,再反变换回来,即得到所要求的区域
A_fill_pic1 = 1 - A_fill_pic;
B_pic1 = bwboundaries(A_fill_pic1);
sss = size(B_pic1);%sss的值就是连通分量的数量
for k = 1 : sss(1)%该循环作用是找到最大区域的边界,然后在原图像的对应位置上赋红
Mid = B_pic1{k};%Mid是一个m×2的矩阵,m就是边界点的数量
%ss4(1)表示边界点的数量,Mid(i 1)和Mid(i 2)表示边界点的坐标
ss4 = size(Mid);
if ss4(1) == max
for i = 1 : ss4(1)
pic(Mid(i 1) Mid(i 2) 1) = 255;
pic(Mid(i 1) Mid(i 2) 2 : 3) = 0;
end
end
end
imwrite(pic strcat(‘lou_smoking‘ int2str(x) ‘.jpg‘) ‘jpg‘);
end
aviobj = avifile(‘lou_smoking.avi‘);%将处理后的图片连成视频文件
aviobj.fps = 25;%初始化视频文件的属性
aviobj.Quality = 100;
aviobj.compression = ‘None‘;
for i = 1 : LEN
frame = imread(strcat(‘lou_smoking‘ int2str(i) ‘.jpg‘));
aviobj = addframe(aviobj uint8(frame));
end
aviobj=close(aviobj);%关闭aviobj的对象
toc;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2534 2013-05-21 14:49 图像处理中的烟雾检测\smoke_inspect_two.m
目录 0 2013-05-21 14:50 图像处理中的烟雾检测
----------- --------- ---------- ----- ----
2534 2
相关资源
- matlab版hog+svm图像二分类
- 图像质量评价matlab源代码
- MATLAB GUI 多界面图像处理
- 小波图像融合matlab实现源代码
- 将二进小波变换用于图像增强的MATL
- matlab车牌图像分割
- DCT基函数图像_MATLAB版本
- 偏微分图像处理MATLAB程序
- 图像预处理MATLAB代码包括图像去孔洞
- matlab编写的有关图像识别分类方法的
- 图像局部提取并保存的Matlab代码实现
- 图像分类的MATLAB代码
- 相位相关图像配准Matlab
- 基于meanshift的彩色图像分割算法源代
- 图片数据点提取.zip
- meanshift原理图像分割matlab程序
- MATLAB实现彩色图像增强-其它文档类资
- matlab 图像边缘检测代码
- matlab实现图像的旋转变换
- Matlab图像处理模板匹配完整程序小飞
- 图像色彩校正代码
- 基于matlab,读取图像文件并计算其图
- 图像处理识别图中棒材个数
- 7种图像降噪matlab实现
- LBP图像特征提取matlab程序
- 图像二值化的三种方法matlab
- 提取图像Hu不变矩,Matlab函数~~~
- 快速提升的结构相似度图像质量评价
- 运用5种不同的梯度增强法进行图像锐
- 自商图像SQI的MATLAB程序
评论
共有 条评论