ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:303.50KB ,
资源ID:938122      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-938122.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像处理技术大作业.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

图像处理技术大作业.DOC

1、学号:200808205135 姓名:柯锦图像处理技术大作业学号:200808205135姓名:柯锦班级:B08082051学院:数计1 作业题目基于图像的动态景物的监测与跟踪2 作业数据短视频,背景相同,一个目标运动,及多目标运动3 基本方法 (1) 图像增强 (2) 图像基本运算(3) 图像分割见代码注释:单目标主要代码如下function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be define

2、d in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global KeJin;%设置全局变量,用于记录目标单击的按钮axes(handles.axes1); %在 axes1 中处理,实现原动画的显示clear data %数据清理avi = aviread(samplevideo.avi);%读取一个 avi 动画,放到临时数组 avi 中video = avi.cdata;for a = 1:length(video) %一帧一帧的读取 video,并调用绘图函

3、数 imagesc 显示每一帧的内容,以达到 avi 动画的播放imagesc(videoa);axis image offdrawnow;end;%handles.keJin=1;%guidata(hObject, handles);KeJin=1;% - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be d

4、efined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)学号:200808205135 姓名:柯锦global KeJin;if KeJin=1axes(handles.axes2);%在 axes2 中处理,实现目标的跟踪的显示clear dataavi = aviread(samplevideo.avi);video = avi.cdata;tracking(video);%调用 tracking 函数,实现动画跟踪(单目标)endif KeJin=2ax

5、es(handles.axes2);MovingDetect();%调用 MovingDetect 函数,实现动画跟踪(多目标)endfunction d = tracking(video) %跟踪处理函数,实现一个运动目标的跟踪if ischar(video)% Load the video from an avi file.avi = aviread(video);pixels = double(cat(4,avi(1:2:end).cdata)/255;%将数据缩小 255 倍,然后以第四维进行组合,图像的增强(像素点的值缩小)clear avielse% Compile the pix

6、el data into a single arraypixels = double(cat(4,video1:2:end)/255; %将数据缩小 255 倍,然后以第四维进行组合,图像的增强(像素点的值缩小)clear videoend% Convert to RGB to GRAY SCALE image.nFrames = size(pixels,4);%pixels 第四维的大小放在 nFrames 中(总帧数)for f = 1:nFrames %对于没一帧,都做如下工作pixel(:,:,f) = (rgb2gray(pixels(:,:,:,f); %转换为灰度图像endrow

7、s=240;cols=320; nrames=f;for l = 2:nrames%从第二帧到最后一帧,都做如下工作%下句为图像的基本运算,减运算,也是该跟踪的根本算法之一 d(:,:,l)=(abs(pixel(:,:,l)-pixel(:,:,l-1);%前后图像相减,得到的矩阵放到 d 中,以实现图像跟踪,此为图像的基本运算k=d(:,:,l);bw(:,:,l) = im2bw(k, .2);%转化为二值图像 学号:200808205135 姓名:柯锦bw1=bwlabel(bw(:,:,l);imshow(bw(:,:,l)%显示二值图像hold on %右方向为横坐标轴%下方向为纵

8、坐标轴cou=1;for h=1:rowsfor w=1:colsif(bw(h,w,l)0.5)%此处用到图像分割,全局阀值分割 toplen = h; %每一帧,如果 cou!=1 的话,下边界纵坐标放在 toplen 中 , if (cou = 1)tpln=toplen; %每一帧,上边界纵坐标放在 tpln 中 endcou=cou+1;breakend endend%disp(toplen);coun=1;for w=1:colsfor h=1:rowsif(bw(h,w,l)0.5)%此处用到图像分割,全局阀值分割 leftsi = w; %每一帧,如果 coun!=1 的话,右

9、边界横坐标放在 leftsi 中 if (coun = 1)lftln=leftsi; %每一帧,左边界横坐标放在 lftln 中coun=coun+1;endbreakend endend widh=leftsi-lftln;%矩形的长(宽度)heig=toplen-tpln;%矩形的宽(高度)widt=widh/2;heit=heig/2;with=lftln+widt;%中心横坐标heth=tpln+heit;%中心纵坐标rectangle(Position,lftln tpln widh heig,EdgeColor,r);%用红色矩形框住目标,以确定目标位置plot(with,het

10、h, r);%用 标出目标的中心学号:200808205135 姓名:柯锦drawnow;hold offend;多目标function x = MovingDetect()clear data%初始化背景所需要的帧数N=15;%背景更新参数p1 = 95;p2 = 100-p1;M_ = 1;%读取 AVI 视频文件mov = aviread(My.AVI);%获取视频帧数dimension = size(mov);frameQTY = dimension(2);M=mov;tmFr = rgb2gray(frame2im(mov(1);s = size(tmFr);scrsz = get(

11、0,ScreenSize);%h1 = figure(position, scrsz(4)/2,scrsz(4)/2,s(2)*2,s(1)*2);cdataSum = int16(zeros(s);sedisk = strel(rectangle,2,2);sedisk2 = strel(rectangle,3,2);count = zeros(s);for c1 = 1:frameQTY;colorFrC = M(c1);%获取第 i 帧frC = rgb2gray(frame2im(colorFrC);frC = im2frame(frC, gray(256);f = int16(frC

12、.cdata);if( c1= 45 );bwf(bw) = 255;%bwf=logical(bwf);cdB = uint8(cdB);f3 = imdilate(bwf, sedisk);f3 = imerode(f3, sedisk);noSmall = bwareaopen( f3, 150 );%标签矩阵L = bwlabel( noSmall, 4 );taggedCars( :,: ) = frC.cdata;if any( L(:) )stats = regionprops(L,boundingbox,filledArea);for label = 1:length(stat

13、s)box = stats(label);if( box.FilledArea 0.3 )continue;endbox = box.BoundingBox;left=round(box(1);top=round(box(2);right=round(box(1)+box(3)-1);bottom=round(box(2)+box(4)-1);if( abs(top - bottom)/abs(right - left) 4 | abs(right - left)/abs(top - bottom) 4 )continue;endtaggedCars(top,left:right)=1; %画

14、矩形框%taggedCars(bottom,left:right)=1;taggedCars(top:bottom,left)=1;taggedCars(top:bottom,right)=1;endend%f5 = imdilate(imerode(f,tk1), tk);学号:200808205135 姓名:柯锦ff = frC.cdata, cdB;f3, taggedCars;%noSmall, taggedCarsff = im2frame(ff,gray(256);movie(ff, 1, 15, 0,0,0,0);%播放第 i 帧%movie(h1, ff, 1, 15, 0,0

15、,0,0);%播放第 i 帧end% end of if-else end%-播放结束4 作业完成目标:动态目标的定位与跟踪,并用方框提示并给出运动轨迹截图如下:单目标:多目标:部分代码来源于:学号:200808205135 姓名:柯锦http:/ function d = tracking(video) 算法中,矩形边界由下面思路得出:从左到右依次扫描图像,第一个为值为 1 的点的横坐标即为矩形左上角点的横坐标,最后一个为 1 的点的横坐标为矩形右下角横坐标;从上到下第一个值为 1 的点的纵坐标即为矩形左上角的纵坐标,最后一个为 1 的点的纵坐标为矩形右下角纵坐标;矩形的中心也就很容易得出。对于多目标的跟踪,涉及到的方面就很多了,关键就是要解决目标遮挡的问题,由于没有好的思路算法,在加上时间短促,其他科目的学习,此问题始终没能解决。但有如下思路:先采用图像相减,将目标区域(多个)存放在一个三维数组中,当有遮挡时,根据记忆算法,然后还原,即可解决目标遮挡的问题。最后,matlab 语法跟 vc 等有很大的区别,用起来不很方便。还有,我要学习的东西还很多很多。路漫漫其修远兮,吾将上下而求索!

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。