对图像进行阈值分析,并进行二值化处理读入一副图像I确定目标在像素平面上的位置坐标结束通过以形心位置为中心,画出合适的连续包含目标的矩形框一.实验名称:运动目标跟踪算法设计与实现二.实验目的1.熟悉各种图像预处理方法,如直方图处理、图像去噪声、图像增强与复原、图像变换等,了解这些方法在图像分析与识别、目标检测及跟踪等各种应用中所起的作用。2.熟悉基本的图像分割原理。3.能够利用MATLAB工具完整实现从图像预处理、图像分割、特征提取与分析及各种实际应用的完整流程。4.该实验为一个综合设计及应用的实验,目的是要求学生综合利用学到的光电图像处理知识,解决图像识别、目标检测及目标定位与跟踪问题。进一步深入理解光电图像处理的重要性,提高学生利用光电图像处理基本理论、方法等解决实际问题及提高分析问题的能力。三.实验原理及步骤1.序列图像中的运动目标形心跟踪(1)序列图像的读取与显示本实验提供了200帧的图像序列,为BMP文件,文件名后缀的序号按场景出现的先后顺序排列。(2)图像分割首先,对图像进行必要的阈值分析。根据实际情况自行确定合适的阈值后,再对图像进行二值化处理。(3)形心计算在分割的单帧图像上,计算图像中目标区的形心坐标(Xc,Yc),确定目标在像素平面上的位置坐标。(4)形心跟踪①MATLAB确定跟踪波门:即以形心位置为中心,在图像中包含目标的区域添加一个合适的矩形框(如取32×16pixels,32×32pixels,64×32pixels等),②实时跟踪:循环读取序列图像,对每帧图像均计算目标区的形心坐标,连续绘制包含目标区域的波门(即矩形框)。实现对200帧序列图像中运动目标的实时稳定跟踪。2.序列图像中的运动目标相关跟踪实验原理及步骤如下:(1)序列图像的读取与显示同实验内容1,序列图像数据另选。(2)参考模板制作在起始帧图像中,手动选取包含目标的矩形区域(根据目标尺寸,确定模板尺寸)。另(缓)存为预制图像模板数据。(3)模板匹配①确定搜索区域大小:在当前帧目标区域扩大适当范围作为下一帧图像的搜索区域。②确定匹配准则:MSE、MAD、NCC或MPC等(选其一种),进行搜索区域的匹配度(相似度)计算,画出搜索区域内的相似度3D曲面图(画连续2帧之间的搜索过程的结果即可),确定最佳的匹配位置。视频数据若为彩色图像,可先进行灰度化处理,然后用像素灰度值进行计算。③实时跟踪:重复步骤①-②,实现序列图像中的目标的连续稳定跟踪。四.实验结果及分析1.序列图像中的运动目标形心跟踪通过对形心的定位,可以实现更好的目标跟踪制作参考模版,确定搜索区域大小读入一副图像I确定匹配准则和最佳的匹配位置结束进行目标的实时跟踪2.序列图像中的运动目标相关跟踪该实验采用MAD最小平均绝对差进行目标跟踪,通过前后两帧的最小差,可确定目标位置,实验结果与理论相符。五.实验心得体会和建议心得体会:通过该试验不仅使我加深了对之前做过的图像预处理的方法的理解,同时提高了自己运用这些知识的综合能力。建议:使用多种匹配准则,进行搜索区域的匹配度计算。六.程序源代码1.序列图像中的运动目标形心跟踪path='E:实验6\CODE\image200s\';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=im2bw(I,0.75);[mn]=size(I1);k=0;xc=0;yc=0;fora=1:mforb=1:(n-30)ifI1(a,b)==0;k=k+1;xc=xc+a;yc=yc+b;endendendimshow(I1,[]),rectangle('position',[yc/k-32,xc/k-16,64,32]);title(['FrameNO.'num2str(i)]);pause(0.01);end2.序列图像中的运动目标相关跟踪path='E:实验6\CODE\f16takeoff_396s\';prefix='';fmt='.jpg';nframes=396;I0=rgb2gray(imread('E:实验6\CODE\f16takeoff_396s\001.jpg'));I0=double(I0);L=10;x0=90;y0=130;height=40;width=110;M1=I0(x0:x0+height,y0:y0+width);follow=zeros(2,1);fork=1:nframesfnum=num2str(k,'%03d');fileName=strcat(path,prefix,fnum,fmt);source=imread(fileName);sourceImg=im2double(rgb2gray((source)));A=zeros(L+1,L+1);fori=(x0-L/2):(x0+L/2)forj=(y0-L/2):(y0+L/2)M2=sourceImg(i:i+height,j:j+width);A(i+(L/2)+1-x0,j+(L/2)+1-y0)=sum(sum(abs(M2-M1)));endend[q,p]=find(A==min(min(A)));x1=x0-(L/2)+q-1;y1=y0-(L/2)-1+p;imshow(source),holdonrectangle('Position',[y1x1widthheight],'edgecolor','k');title(['FrameNO.'num2str(k)]);x0=x1;y0=y1;M1=sourceImg(x0:x0+height,y0:y0+width);MAD(1:1+height,1:1+width,k)=1/(width*height)*M1;pause(0.01);endfigure(2),mesh(MAD(1:1+height,1:1+width,1));title('相似度/最小阈值')报告评分:指导教师签字: