基于视频的电熔镁炉工况识别系统→1.数据准备(data_prepare)

基于视频的电熔镁炉工况识别系统→1.数据准备(data_prepare)

《基于视频的电熔镁炉工况识别系统→1.数据准备(data_prepare)》


整个项目参考代码是研究生毕业项目→ DTBox-0.5.zip
描述代码
  1. 将视频00283切割为时长为5s,帧率为10帧/秒的724个视频 参考见百度网盘→赵磊的文集→项目→镁炉可视化系统(研究生毕业)→效果好00283.mp4
视频00283的参数
1
2
3
4
5
Video Properties:
           Width: 1920
           Height: 1080
           FrameRate: 25
           Duration: 1449s
原视频帧数新视频帧数
1449×25=36225724*50=36200

图像切割
video_cut.m
input:效果好00283.mp4
output:video_segment
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
% cut a 10s video from the original video
clear ; close all; clc
video_name = 'g:\炉口火焰数据库制作\MP4\效果好00283.mp4';
video_len = 5;
frameRate = 10;
v = VideoReader(video_name);
for i = 1:floor(v.Duration*v.FrameRate / (video_len*frameRate) )
    vcut_name = ['.\video_segment\00283\',num2str(i),'_00283'];
    vcut = VideoWriter(vcut_name,'MPEG-4');
    vcut.FrameRate = frameRate;
    open(vcut);
    temp = frameRate*video_len;
    for j = (i-1)*temp+1:i*temp
        I = read(v,j);
%         Img=I(200:470,350:1100,:); % (for 00279)
%         Img=I(200:470,350:1100,:); % (for 00282)
        Img=I(200:470,400:1450,:); % (for 00283) 271*1051
        writeVideo(vcut,Img);
    end
    close(vcut);
    fprintf(['the ',num2str(i),' is generated!\n']);
end
  1. 制作furnace_patches_724.mat   424M
    1. size=1*724 
    2. 将724个视频数据保存到该mat文件中
灰度化
图像缩放



furnace_patches_724_create.m
input:video_segment中的724个视频
output:furnace_patches_724.mat     724个视频图像序列数据
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
clear ; close all; clc

%% create furnace_patches_724 
video_num = 724;
imgdb = cell(1,video_num);
addpath(genpath('.'));
for j = 1:video_num
    dir = '.\video_segment\00283\';
    v = VideoReader([dir,num2str(j),'_00283.mp4']);
    len = v.FrameRate*v.Duration;
    pictu_matri = zeros(floor(v.Height/4),floor(v.Width/4),len,'uint8');
    for k = 1:len
        pictu_matri(:,:,k) = imresize(rgb2gray(read(v,k)),[floor(v.Height/4),floor(v.Width/4)]);
    end
    imgdb{j} = pictu_matri;
end
save('.\furnace_patches_724.mat','imgdb');
  1. 生成724*724 dist矩阵
    1. 使用calculateMetricLDS 参考见基于视频的电熔镁炉工况识别系统→4.基于子空间角度的核函数→2.四种距离

  1. 对724个数据进行聚类
dist_analysis.m
input:724*724dist矩阵
output:聚好类的数据X Y num(每一类的个数)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
clear ; close all; clc
%% dist analysis
name = '.\distMatrix\_n=20_nv=1_724_martin.mat';
load(name);

limit_number = 25;%25:3类
[dist_sort,dist_sort_index] = sort(dist,2);
result = dist_sort_index(1,1:limit_number);
for i = 2:724
    if intersect(result(:,2:limit_number),dist_sort_index(i,2:limit_number))
        continue;
    else
        result = [result;dist_sort_index(i,1:limit_number)];
    end
end
result2 = result';
num=size(result',1);
X=result2(:);
Y=[zeros(num,1);ones(num,1);ones(num,1)+1];
data=[X,Y];
save('.\cluster_result\data25X3_martin.mat','num','data')

posted on 2018-10-18 14:41 LeisureZhao 阅读(...) 评论(...) 编辑 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值