如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
《图像处理技术》大作业1作业题目基于图像的动态景物的监测与跟踪2作业数据短视频背景相同,一个目标运动;短视频(或5张图片),背景相同,多个目标运动;验证数据自己提供(彩色、灰度图像不限);3作业完成目标动态目标的定位与跟踪,并用方框提示并给出运动轨迹能正确检测运动目标;多个目标的识别率;4程序设计界面设计:“打开”按钮功能设计:打开图片组的第一张图片并在左边显示:[name,path]=uigetfile('*.jpg;*.bmp;*.png;*.tif;*.gif','OpenImage');file=[path,name];%读取第一张图片路径axes(handles.image1);%选择在左窗口显示x=imread(file);%读取第一张图片handles.img=x;guidata(hObject,handles);imshow(x);%显示第一张图片globalF;%全局变量FF=name(1:end-5);%F为文件名编号前的字符globalN;%全局变量NN=7;%N为图片组中图片总数量“播放”按钮功能设计:读取图片组中所有的图片,并按一定间隔时间显示,形成动画效果:globalF;globalN;axes(handles.image1);%选择在左窗口显示fori=1:N%循环读出图片,形成动画效果f=int2str(i);I=strcat(F,f,'.jpg');%联接文件名a=imread(I);%读取图片imshow(a);%显示图片axisoff%关闭坐标轴pause(0.8);%每显示一张图片暂停0.8秒end“目标追踪”按钮功能设计:读取图片,将图片转成二值图像,利用两张二值图像的异或求得目标,在目标图像中求得目标的边框与质心,利用求得的边框画出目标的位置,利用存储的质心画出目标移动轨迹:globalF;globalN;x=handles.img;axes(handles.image2);%选择在右窗口显示s=size(x);%获取图片大小A=uint8(zeros(s(1),s(2),1,N));s=size(A);%获取图片组数组的大小fori=1:s(4)%循环读取图片t=int2str(i);I=strcat(F,t,'.jpg');a=imread(I);%读取图片A(:,:,:,i)=rgb2gray(a);%转为灰度图片endB=logical(zeros(s(1),s(2),s(3),s(4)));%定义二值矩阵forf=1:s(4)imshow(A(:,:,:,f));%显示图片level=graythresh(A(:,:,:,f))-30/255;%获取阈值B(:,:,:,f)=im2bw(A(:,:,:,f),level);%转为二值图像B(:,:,:,1)=im2bw(A(:,:,:,1),level);B(:,:,:,f)=xor(B(:,:,:,1),B(:,:,:,f));%异或求得目标区域B(:,:,:,1)=xor(B(:,:,:,1),B(:,:,:,1));B(:,:,:,f)=medfilt2(B(:,:,:,f),[77]);%对二值图像中值滤波L=bwlabel(B(:,:,:,f));%计算二值图像的连通区域stas=regionprops(L,'All');%获取图像连通区信息t=size(stas);%获取连通区数量forj=1:t(1)p(f,j,:)=stas(j).BoundingBox;%存储目标边框y(f,j,:)=stas(j).Centroid;%存储目标位子(质心)%画出目标边框rectangle('Position',p(f,j,:),'LineWidth',2,'LineStyle','--','EdgeColor','r');fork=1:f%以小方点画出目标轨迹rectangle('Position',[y(k,j,1),y(k,j,2),2,2],'LineWidth',2,'EdgeColor','b');endendpause(0.8);%每处理一张图片暂停0.8秒end5软件说明图片组中图片数量为7张,为RGB图像,命名时从1~7编号。打开软件后单击“打开”按钮,选中图片组的第一张图片,即可在左边显示该图片。单击“播放”按钮,可以看到在左边显示图片动画。单击“目标跟踪”按钮,可以看到在右边显示出目标的跟踪效果。6效果图初始界面:单目标跟踪:打开第一张图片:播放图片组动画:目标追踪,定位目标