資源簡介
基于混合高斯模型并利用meanshift算法結合實現視頻中運動目標的跟蹤,可處理復雜背景,實時
代碼片段和文件信息
????%///////////////////////////////////////////////////////////////////////////////////////////%
????close?all;
????clear?all;
????%%?使用在線k均值的算法實現混合高斯模型參數的初始化
????%?-----------------------??利用訓練視頻序列初始化高斯模型參數?----------------
????clear;
????clc;
????trainsequence?=?80;????????????????????????????????????????????????????????%?訓練視頻序列的幀數
????distance?=?10;??????????????????????????????????????????????????????????????%?間隔選取圖像,避免物體運動太慢的情況發生
????thresh????=?15;????????????????????????????????????????????????????????????%?用于選定的各樣本與聚類中心均值的做大誤差
????%?高斯模型的一些相關參數
????test_start?=?1;
????delta?=?2.5*3;????????????????????????????????????????????????
????alfa??=?0.001;
????sigma?=?6;
????maxK??=?4;
????TH????=?0.25;
????movFile?=??‘F:\Infrared?video?pedestrian?detection\testcap\testcap4\test.avi‘;
????video?=?mmreader(movFile);
????fileinfo?=?aviinfo(movFile);
????nframe?=?fileinfo.Numframes;
????test_sequence?=?nframe;
????%?初始化parameters的相關參數
????%?name???????=?sprintf(‘%d.jpg‘1);
????%?File_name=‘E:\數據庫\視頻1\4_1Data\‘;
????%?str?=?int2str(0001);
????%?name?=?strcat(File_namestr‘.jpg‘);%
????%?first_im???=?double(imread(name));?????????????????????????????????????????%?務必要將數據轉化成double型數據,以便下面計算
????mov?=?read(video1);
????first_im?=?double(mov);
????height?????=?size(first_im1);
????width??????=?size(first_im2);
????parameter??=?cell(heightwidth);???????????????????????????????????????????%?混合高斯模型的參數
????t1?=?clock;
????for?i?=?1:height
????????for?j?=?1:width
????????????x?=?(first_im(ij1)+first_im(ij2)+first_im(ij3))/3;
????????????parameter{ij}?=?([xfirst_im(ij1)first_im(ij2)first_im(ij3)01]);?????
???????????????????????????????????????????????????????????????????????????????%?該矩陣的第一列為灰度均值,第二列到第四列為對應的RGB值第五列為方差(sigma的平方)
???????????????????????????????????????????????????????????????????????????????%?第六列為與之對應的樣本數量
???????????????????????????????????????????????????????????????????????????????%?當出現新的聚類時新添加一行,每列對應第一行的數據格式??????????????????????????????????????????????????????????
????????end????
????end
????%?-------------------------?在線k均值聚類?----------------------------------
????for?frame?=?2:distance:trainsequence????
????????%?讀入視頻序列中的一幅新圖像
????%?????File_name=‘E:\數據庫\視頻1\4_1Data\‘;
????%?????str?=?int2str(frame);
????%?????name?=?strcat(File_namestr‘.jpg‘);%
????%?%?????name??????????=?sprintf(‘%d.jpg‘frame);
????%?????new???????????=?double(imread(name));
?????mov?=?read(videoframe);
?????new?=?double(mov);
????????%?對新讀入的圖像的像素值歸類
????????for?i?=?1:height
????????????for?j?=?1:width
????????????????x?=?(new(ij1)+new(ij2)+new(ij3))/3;
????????????????%?找到最近的聚類中心
????????????????%?-------------------------------------------------------------
????????????????min_c?????=?abs(x?-?parameter{ij}(11));
????????????????min_no????=?1;
????????????????if?size(parameter{ij}1)?>=2
????????????????????for?c?=?2:size(parameter{ij}1)?
- 上一篇:基于qr分解的thp預編碼
- 下一篇:matlab仿真IMM算法
評論
共有 條評論