火焰高度和频率
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在第一列插入序号数据。点击A(x),全选中第一列,后点右键
得出:
再将该行数除以该视频的帧率得出视频的时间序列:点右键,选择set column values.
出现:
点击Col(A)。
选择col(A).后下面出现
将其处以帧率(本例为25帧/s).
然后点ok。第一列即变为:
5作图。选中两列点击右下角
中的 获得:
一火焰高度
1截取火焰视频,要有火焰图像背景;
2 matlab处理(total)获得火焰二值图;并生成average、combine和output三个文件。其中output为Tecplot后处理文件。
3用Tecplot打开output。去mesh点contour.
4去除火焰多余的部分 。点击活动按钮出现
再点击more,出现
移除备选框中火焰多余的部分。只保留0.5,0.9,0.95三个高度的火焰。然后记录火焰概率为0.5时的火焰最高最低点像素并相减得出火焰高的像素值。该像素与标度像素值(火焰图像中作为标尺的图像)作比较则可得出实际火焰平均高度。
附,高度处理程序
fire=mmreader('t.avi');
level=0.08;
i=im2bw(p,level);
str= [nimwrite(i,str,'jpg');
end
[height,width]=size(i);
ishow=zeros(height,width);
for k=1:nframes
str= [num2str(k) '.jpg'];
6 FFT转换。
出现:
点击ok.
数据表中出现FFT转化的数据和曲线。
曲线图中第一张:
双击y轴数据,出现:
更改起始值(From)和终止值(To):
起始值一般为0,终止值适当选择直到发现有除零点以外的峰值出现,若出现峰值即为火焰振荡频率。
本例中未发现。
程序:
%Beta0915V1
%程序功能:计算火焰图像的相关系数
%读取视频
%以第k帧为参考
%在图像中截去干扰部分
%第k帧GRB输出
%保存第k帧GRAY输出
%各帧转化为灰度图片(不输出)
%计算所有帧与第k帧相关系数r
%并输出成文本文件
%Beta0915V1
%计算图像火焰部分的相关系数
mv=mmreader('t.AVI');
nframes=get(mv,'NumberOfFrames');
nframes=get(fire,'numberofframes');
background=imread('0.jpg');
for k=1:nframes
singleframe=read(fire,k);
pic=imsubtract(singleframe,background);
p=rgb2gray(pic);
i=imread(str);
t=double(i);
ishow=ishow+t;
end
ishow=ishow./nframes;
imwrite(ishow,'combine.png');
ishow=ishow./255;
imwrite(ishow,'average.png');
fid=fopen('output.dat','wt');
fprintf(fid,'ZONE I=%d J=%d\n',width,height);
for i=1:height
for j=1:width
fprintf(fid,'%14.8e\t%14.8e\t%14.8e\n',j,i,ishow(height+1-i,j));
end
end
fclose(fid);
fid = fopen('fft.txt', 'wt');
fprintf(fid, '%8.6f\n', r);
fclose(fid)
A = rgb2gray(RGB); %转化为灰度图片
imwrite(A,['GRAY_',num2str(k),'.png']);
for k=1:600
B=rgb2gray(read(mv,k));
B=imcrop(B,rect);
r(k)=corr2(A,B);
1000-k %指示计算进度
end
二火焰频率
1把待分析视频‘t.avi’和程序文件‘Beta0915V1’放入同一工作文件夹。
2 matlab打开‘Beta0915V1’。
3点击 运行该m文件。选取目标区域。(该程序中以第六帧为样本帧做相关性计算)
点击鼠标左键并按住选取区域
选中后双击。开始计算。、
4计算完成后工作目录中会生成一个文件 。将里面的数据拷到origin中。
nframes
get(mv)
k= 6 ; %以第k张图片作为参考
imwrite(read(mv,k),['RGB_',num2str(k),'.png'])
RGB=imread(['RGB_',num2str(k),'.png']);
[RGB rect]=imcrop(RGB); %裁剪出有效图片范围,rect,[xmin ymin width height]
得出:
再将该行数除以该视频的帧率得出视频的时间序列:点右键,选择set column values.
出现:
点击Col(A)。
选择col(A).后下面出现
将其处以帧率(本例为25帧/s).
然后点ok。第一列即变为:
5作图。选中两列点击右下角
中的 获得:
一火焰高度
1截取火焰视频,要有火焰图像背景;
2 matlab处理(total)获得火焰二值图;并生成average、combine和output三个文件。其中output为Tecplot后处理文件。
3用Tecplot打开output。去mesh点contour.
4去除火焰多余的部分 。点击活动按钮出现
再点击more,出现
移除备选框中火焰多余的部分。只保留0.5,0.9,0.95三个高度的火焰。然后记录火焰概率为0.5时的火焰最高最低点像素并相减得出火焰高的像素值。该像素与标度像素值(火焰图像中作为标尺的图像)作比较则可得出实际火焰平均高度。
附,高度处理程序
fire=mmreader('t.avi');
level=0.08;
i=im2bw(p,level);
str= [nimwrite(i,str,'jpg');
end
[height,width]=size(i);
ishow=zeros(height,width);
for k=1:nframes
str= [num2str(k) '.jpg'];
6 FFT转换。
出现:
点击ok.
数据表中出现FFT转化的数据和曲线。
曲线图中第一张:
双击y轴数据,出现:
更改起始值(From)和终止值(To):
起始值一般为0,终止值适当选择直到发现有除零点以外的峰值出现,若出现峰值即为火焰振荡频率。
本例中未发现。
程序:
%Beta0915V1
%程序功能:计算火焰图像的相关系数
%读取视频
%以第k帧为参考
%在图像中截去干扰部分
%第k帧GRB输出
%保存第k帧GRAY输出
%各帧转化为灰度图片(不输出)
%计算所有帧与第k帧相关系数r
%并输出成文本文件
%Beta0915V1
%计算图像火焰部分的相关系数
mv=mmreader('t.AVI');
nframes=get(mv,'NumberOfFrames');
nframes=get(fire,'numberofframes');
background=imread('0.jpg');
for k=1:nframes
singleframe=read(fire,k);
pic=imsubtract(singleframe,background);
p=rgb2gray(pic);
i=imread(str);
t=double(i);
ishow=ishow+t;
end
ishow=ishow./nframes;
imwrite(ishow,'combine.png');
ishow=ishow./255;
imwrite(ishow,'average.png');
fid=fopen('output.dat','wt');
fprintf(fid,'ZONE I=%d J=%d\n',width,height);
for i=1:height
for j=1:width
fprintf(fid,'%14.8e\t%14.8e\t%14.8e\n',j,i,ishow(height+1-i,j));
end
end
fclose(fid);
fid = fopen('fft.txt', 'wt');
fprintf(fid, '%8.6f\n', r);
fclose(fid)
A = rgb2gray(RGB); %转化为灰度图片
imwrite(A,['GRAY_',num2str(k),'.png']);
for k=1:600
B=rgb2gray(read(mv,k));
B=imcrop(B,rect);
r(k)=corr2(A,B);
1000-k %指示计算进度
end
二火焰频率
1把待分析视频‘t.avi’和程序文件‘Beta0915V1’放入同一工作文件夹。
2 matlab打开‘Beta0915V1’。
3点击 运行该m文件。选取目标区域。(该程序中以第六帧为样本帧做相关性计算)
点击鼠标左键并按住选取区域
选中后双击。开始计算。、
4计算完成后工作目录中会生成一个文件 。将里面的数据拷到origin中。
nframes
get(mv)
k= 6 ; %以第k张图片作为参考
imwrite(read(mv,k),['RGB_',num2str(k),'.png'])
RGB=imread(['RGB_',num2str(k),'.png']);
[RGB rect]=imcrop(RGB); %裁剪出有效图片范围,rect,[xmin ymin width height]