您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 目标跟踪算法设计与实现
实验六、目标跟踪算法设计与实现一、实验目的1、熟悉各种图像预处理方法,如直方图处理、图像去噪声、图像增强与复原、图像变换等,了解这些方法在图像分析与识别、目标检测及跟踪等各种应用中所起的作用。2、熟悉基本的图像分割原理。3、能够利用matlab工具完整实现从图像预处理、图像分割、特征提取与分析及各种实际应用的完整流程。4、该实验为一个综合设计及应用的实验,目的是要求学生综合利用学到的光电图像处理知识,解决图像识别、目标检测及目标定位与跟踪问题。进一步深入理解光电图像处理的重要性,提高学生利用光电图像处理基本理论、方法等解决实际问题及提高分析问题的能力。二、实验内容(一)序列图像中的运动目标形心跟踪1、序列图像的读取与显示本实验提供了200帧的图像序列,为BMP文件,文件名后缀的序号按场景出现的先后顺序排列,序列图像读取及显示。2、图像分割首先对图像进行必要的阈值分析,确定合适的阈值后,再对图像进行二值化处理(图像分割)。3、形心计算在分割的单帧图像上,计算图像的形心坐标(Xc,Yc),确定目标在像素平面上的位置。4、形心跟踪1)确定跟踪波门:即以形心位置为中心,在图像中包含目标的区域添加一个合适的矩形框2)实时跟踪:循环读取序列图像,对每帧图像均计算形心,和进行包含目标区域的波门绘制。实现对200帧序列图像中运动目标的实时稳定跟踪,如图1所示(仅为示意图,并非原图)。实验结果:通过合适的波门选择和阈值修正,基本实现了200帧的连续跟踪,跟踪的效果较好,如下图所示:源码:clear;clc;closeallpath='C:\1\';filecount=200;fori=1:filecountname=num2str(i);ifi=9filename=strcat('0000000',name,'.bmp');elseifi=99filename=strcat('000000',name,'.bmp');elseifi=199filename=strcat('00000',name,'.bmp');endI=imread([pathfilename]);I1=imcrop(I,[0,0,505,272]);I2=mat2gray(I1);figure(1),imshow(I2);level=graythresh(I2);%%求二值化的阈值[height,width]=size(I2);Level_fixed=level-0.05;%%阈值修正bw=im2bw(I1,Level_fixed);%%二值化图像figure(3),imshow(bw);%%显示二值化图像[L,num]=bwlabel(bw,8);%%标注二进制图像中已连接的部分plot_x=zeros(1,1);%%用于记录质心位置的坐标plot_y=zeros(1,1);sum_x=0;sum_y=0;area=0;[height,width]=size(bw);forii=1:heightforjj=1:widthifL(ii,jj)==0sum_x=sum_x+ii;sum_y=sum_y+jj;area=area+1;endendendplot_x(1)=fix(sum_x/area);plot_y(1)=fix(sum_y/area);%%质心坐标figure(2);imshow(I);rectangle('Position',[plot_y(1)-34plot_x(1)-148832]);%%添加跟踪波门title(['NO.'num2str(i)]);pause(0.001);holdonplot(plot_y(1),plot_x(1),'*')%%标记质心点end(二)序列图像中的运动目标相关跟踪1、序列图像的读取与显示同实验内容(1),序列图像数据另选2、参考模板制作在起始帧图像中,手动选取包含目标的矩形区域(根据目标尺寸,确定模板尺寸)。另(缓)存为预制图像模板数据。3、模板匹配1)确定搜索区域大小:在当前帧目标区域扩大适当范围作为下一帧图像的搜索区域。2)确定匹配准则:MSE、MAD、NCC或MPC等(选其一种),进行搜索区域的匹配度(相似度)计算,画出搜索区域内的相似度3D曲面图(画1次搜索过程的结果即可,如图2),确定最好的匹配位置。视频数据为彩色图像,匹配特征可直接用像素灰度进行。3)实时跟踪:重复1)-2),实现序列图像中的目标连续跟踪。通过首帧图片确定了矩形区域,通过MAD匹配准则进行逐帧匹配,同时选定一个适当区域进行了匹配,从输出结果看,基本上达到了识别移动物体的目的,有部分区域识别有误差。源码:clear;clc;closeall%%读入图像I_gray=imread('001.jpg');path='F:\changjing\f16takeoff_396s\';%设定图像序列文件总帧数filecount=396;fori=1:filecountname=num2str(i);ifi=9filename=strcat('00',name,'.jpg');elseifi=99filename=strcat('0',name,'.jpg');elseifi=199filename=strcat('',name,'.jpg');endI=imread([pathfilename]);figure(1),imshow(I_gray);rectangle('Position',[130909040]);M=I_gray(90:130,130:220);size(M)fori=1:120forj=1:120M2=I(40+i:80+i,80+j:170+j);cost(i,j)=sum(sum(abs(M2-M)));cost;endend[a1,a2]=find(cost==min(min(cost)));figure(2);imshow(I);rectangle('Position',[40+a280+a19040]);pause(0.01);end
本文标题:目标跟踪算法设计与实现
链接地址:https://www.777doc.com/doc-5354037 .html