基于mean-shift算法的运动目标跟踪毕业设计(编辑修改稿)内容摘要:
式表示 : 湖南工学院(本科)毕业设计论文 7 bbfbf (8) 闭合运算的原理是对图像进行一次膨胀运算后,再对图像进行一次腐蚀运算。 开启运算可以做到磨掉突出图像的外部棱角,闭合运算恰好相反,磨掉的是内部尖角,此外,开闭运算还具有滤波特性。 本章小结 本章所研究的主要是与本课题密切相关的一些基础理论知识,前面两节讲的是对图像进行灰度值处理以及噪声处理,这两种处理方法能够使图像变的清晰、可视效果好。 图像的灰度化处理用到的技术是对图像进行加权平 均;而去噪处理用到的则是中值滤波。 第三节列举出了当前所用到的主要目标表示法,并简单介绍了其工作原理。 最后第四节,里面提到的腐蚀与膨胀当前用的比较多,他属于一种滤波算法,通过这两种技术的处理,能过使粗糙的图像变得光滑。 湖南工学院(本科)毕业设计论文 8 3 VC 编程环境的搭建 当前大部分视频监控中,研究者们都用到 OpenCV 来对图像做预处理,其处理目的主要是为了去除图像中的冗余,改善图像的可视效果,从而保证目标在跟踪过程中的准确性。 预处理又分为噪声处理和图像灰度化处理两个重要内容。 OpenCV 简介 OpenCV 是一个 完全开源的计算机视觉库,它的编写语言是 C/C++,支持开源的Linux 系统、微软的 Windows 系统以及苹果的 Mac 操作系统。 OpenCV 除了 C 之外,它 还支持 TPython 、 Ruby 等 语言。 调用 OpenCV 函数库 的主要目标是加快图像处理的执行速度。 OpenCV 的作用主要是为了构建出简易的计算机影像框架,其目的是为科学家们设计出更好的计算机影像相关软件提供帮助。 OpenCV 函数库中大概 包含五百多个函数,涉及到许多领域。 由于计算机视觉和机器学习是密切相关的,因此OpenCV 还提供 MLL 机器学习库,能够很容易的 应用到其他的机器学习场所。 因此,OpenCV 在科学研究中的应用领域相当广泛。 下载和安装 OpenCV OpenCV 主页在 SourceFe 网站 : llSourceFe. Netlprojectsl opencvlibrary,对应的 Wiki 在 : //opencv. willowgarage. ,对于 Windows 系统,则为 OpenC 安装程序,然而,最新的版本始终都在 SourceFe 的 SVN 仓库中 【 16】。 本论文在这里只讲在 Windows 系统下的安装,若想了解在 Linux 系统和苹果操作系统下的安装,可以自己查看相关资料。 在 Windows 操作系统下,首先,从 OpenCV官网中下载 EXE 安装程序,双击后即可安装。 接着是注册 DirectShow filter,进行一些安装后的必要处理,注册成功后即可开始使用 OpenCV。 当然,你也可以进入下载安装包的„ /make 目录下,使用 VS20xx 打开 ,或者使用低版本的 MC++(如)打开 opencv. dsw,然后按照提示生成调试版本的库,当然也可以重新生成Release 版本的库。 一切都安装好之后,若还想使用 IPP 优化功能,则可在官网上下载安装包进行安装, 为了安装的顺利进行,请使用 及以上版本。 然后确认将二进制文件路径添加到操作系统的环境变量 PATH 中。 添加环境变量后, OpenCV 就能够正确加载 IPP 了。 搭建 OpenCV 环境 本文的硬件平台为惠普 G42474TX 笔记本电脑, CPU 为主频 32 位双核酷睿 i3 390M, 2G 内存。 视频输入为电脑自带的集成摄像头。 软件开发平台为湖南工学院(本科)毕业设计论文 9 WindowsXP 操作系统 、 OpenCV 以及 MS Visual C++ (以下简称 )。 其中 OpenCV 在 中的配置过程如下: 假设我们将 OpenCV 安装到 C:\Program Files\OpenCV 文件夹下,在安装 OpenCV过 程 中 需要 选择 将 \OpenCV\bin 加入系统变量。 然 后 ,检 查 C:\Program Files\OpenCV\bin 是否已经被加入到环境变量 PATH 中(我的电脑 属性 环境变量),如果没有,请加入。 成功加入后需要重启电脑才能生效,或者在任务管理器中重启。 OpenCV 在 下的详细配置过程: 1) 全局设置 菜单 工具 选择 目录: 首先设置 lib 路径,平台选择 Win32,目录 选择 Library files,然后在空白处输入lib 路径 ,如 下图 1 所示。 图 1 Library files 设置 然后目录选择 Include files,在下方填入需要的库文件路径,如下图 2 所示: 图 2 Include files 设置 湖南工学院(本科)毕业设计论文 10 最后 选择 Source files,在下方填入 需要的库文件 路径,如下图 3 所示: 图 3 Source files 设置 添加完上述三处库文件后再点击“ OK”,即成功的完成了 OpenCV 的配置。 2) 项目设置 每次创建项目时,若想使用 OpenCV,则需要在工程中加入 需要的 lib 库文件。 添加过程为: 菜单 工程 设置 ,然后将 Setting for 选 择 All Configurations,然后选择右边 “链接” 标签,在 “ 对象 /库模块” 附加上 : 等 lib 文件,当然,你也可以只添加自己需要的 lib 文件,如下图 4 所示: 图 4 项目设置 OpenCV 中常用函数介绍 数据结构 OpenCV 中有一些基础的数据类型,在我们平时用 OpenCV 函数库的时候常常会用到,因此在我们使用该函数库之前应该先掌握好,才能在用的时候得心应手。 以下是对常用数据结构的介绍: 1) CvPoint 结构 它是一个 int 型结构,代表了二维坐标系下面的点,其结构体如下所示: 湖南工学院(本科)毕业设计论文 11 typedef struct CvPoint { int a。 //代表坐标系中的横坐标,原点坐标为 0 int b。 //代表坐标系中的竖坐标,原点坐标为 0 } CvPoint。 2) CvSize 结构 由名字 size 即可看出,该结构体表示的是大小;该结构通常是用来表示矩形框大小的,单位为像素,结构体中已经定义了矩形框的宽和高,具体如下: typedef struct Cvsize { int m_Width; //代表矩形框的宽,以像素为单位 int m_Height; //代表矩形框的高,以像素为单位 }CvSize。 3) IplImage 结构 IplImage 结构体的主要功能是用来处理和创造图像,它隶属于 inter 函数库 IPL,该函数库的 主要功能是图像处理。 该结构体定义如下: typedef struct IplImage { int n_Size。 //结构体大小 int Card。 //版本号 int n_CMCC。 //支持的信道 int Depther。 //像素深度值 int Data_up。 //0 和 1 分别代表交叉存取颜色信道和分开颜色信道 int Orange。 //0 代表左上, 1 代表的是左下 int m_Width。 //图像的宽,用像素值表示其大小 int m_Height。 //图像的高,用像素值表示其大小 struct_IplROI *Red。 //表示图像比较活跃的区域 int Data_Size。 //图像的 data 大小 int Width_Step。 //以字节为单位的图像大小 } 4) CvCapture 结构 typedef struct CvCapture CvChance。 湖南工学院(本科)毕业设计论文 12 该结构体在 OpenCV 应用中相当重要,视频中每帧图像的抓取都由它来完成,应当熟练掌握其用法。 5) cvCreateVideoWriter 结构 typedef struct CvVideoWriter Movie_Reader。 常用函数 除了有常用的数据结构外,还有以下常用函数,也是必须掌握的内容,下面简单的介绍几个常用函数,本人在这次毕业设计中也有用到他们,介绍如下: 1) cvLoadImage( ):该函数用来载入视频图像 IplImage* cvLoadImage( const char* videoname, //声明一个文件名字 int countenance=CV_LOAD_IMAGE_COLOR )。 Videoname: 该 char型常量代表的是被加载的视频名字。 countenance:表示加载进去后的视频图像的颜色和深度, 指定读入图像的颜色和深度。 指定的颜色可以将输入的图片转为 3信道 (CV_LOAD_IMAGE_COLOR), 单信(CV_LOAD_IMAGE_GRAYSCALE), 或者保持不变(CV_LOAD_IMAGE_ANYCOLOR)。 2) cvShowImage( ):在指定窗口中显示图像 void cvShowImage( const char* name, const CvArr* image )。 name:窗口的名字。 image:被显示的图像。 3) cvCreateFileCapture( )与 cvCreateCameraCapture( ) CvCapture* cvCreateFileCapture( const char* filename )。 初始化从文件中获取视频; filename: 视频文件名。 函数 cvCreateFileCapture给指定文件中的视频流分配和初始化 CvCapture结构。 当分配的结构不再使用的时候,它应该使用 cvReleaseCapture函数释放掉。 CvCapture* cvCreateCameraCapture( int index )。 初始化从摄像头中获取视频 ; index : 要使用的摄像头索引。 如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数 1应该便可以。 湖南工学院(本科)毕业设计论文 13 函数 cvCreateCameraCapture给从摄像头的视频流分配和初始化 CvCapture结构。 释放这个结构, 也要 使用函数 cvReleaseCapture。 4) cvQueryFrame( ):从摄像头或者文件中抓取并返回一帧 IplImage* cvQueryFrame( CvCapture* capture )。 capture: 视频获取结构。 函数 cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。 返回的图像不可以被用户释放或者修改。 5) cvGetCaptureProperty( )与 cvSetCaptureProperty( ) double cvGetCaptureProperty( CvCapture* capture, int property_id )。 获得摄像头或者视频文件的指定属性 ; capture: 视频获取结构。 property_id: 属性 标识。 可以是下面之一 : CV_CAP_PROP_POS_MSEC 影片目前位置,为毫秒数或者视频获取时间戳 CV_CAP_PROP_POS_FRAMES 将被下一步解压 /获取的帧索引,以 0为起点CV_CAP_PROP_POS_AVI_RATIO 视频文件的相对位置( 0 影片的开始, 1 影片的结尾 ) CV_CAP_PROP_FRAME_WIDTH 视频流中的帧宽度 CV_CAP_PROP_FRAME_HEIGHT 视频流中的帧高度 CV_CAP_PROP_FPS 帧率 CV_CAP_PROP_FOURCC 表示 codec的四个字符 CV_CAP_PROP_FRAME_COUNT 视频文件中帧的总数 int cvSetCaptureProperty( CvCapture* capture, int property_id, double value )。 设置指定视频获取的属性。 目前这个函数对视频文件只支持: CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO; capture: 视频获取结构。 property_id: 属性标识。 可以是下面之一: CV_CAP_PROP_POS_MSEC 从文件开始的位置,单位为毫秒 CV_CAP_PROP_POS_FRAMES 单位为帧数的位置(只对视频文件有效) CV_CAP_PROP_POS_AVI_RATIO 视频文件的相对位置( 0 影片的开始, 1 影片的。基于mean-shift算法的运动目标跟踪毕业设计(编辑修改稿)
相关推荐
16 MIPS – 只需两个时钟周期的硬件乘法器 • 非易失性程序和数据存储器 通过 JTAG 接口实现对 Flash、 EEPROM、熔丝位和锁定位的编程 2 个具有可编程增益 ( 1x, 10x, 或 200x)的差分通道 上电复位以及可编程的掉电检测 片内经过标定的 RC 振荡器 片内 / 片外中断源 6 种睡眠模式 : 空闲模式、 ADC 噪声抑制模式、省电模式、掉电模式、
机以 Intel公司的MC48 为代表。 这个系列的单片机内集成有 8 位 CPU、 I/O 接口、 8 位定时器 /计数器,寻址范围不大于 4KB,具有简单的中断功能,无串行接口。 第二阶段 (19781982 年 ):单片机完善阶段。 在这一阶段推出的单片机其功能有较大的增强,能够应用于更多的场合。 这个阶段的单片机普遍带有串行 I/O 口,多级中断处理系统, 16 位定时器 /计数器
系统,只有两个基本器件,该系统用于控制、检测和跟踪物体。 系统由一个询问器(或 阅读器 )和很多 应答器 (或标签)组成。 本文提出了一种基于 MFRC500 的 MIFARE 卡读写器设计方案, MIFARE 卡读写器使用射频识别技术,在 5~10cm 范围内非接触读写数据,读写时间不大于 秒,上位机通过读写器完成对卡中数据的设置,三次认证机制增强系统的可靠性,完善的防冲突机制实现一机多卡功能
3。 24 辅助按键部分程序 24 错误处理部分程序 26 EEPROM 读写部分程序 26 结 论 28 参考文献 29 附录 1 系统总体电路图 30 附录 2 系统实物图片 31 致 谢 32 吉林化工学院毕业设计说明书 1 第 1 章 绪 论 按键以简单、灵活、易操作等特性被广泛应用在生活中的方方面面。 其种类繁多,具体有 薄膜按键 、 轻触按键 、 贴片按键 、 直插按键 、自锁按键
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。 希望通过不断的努力,使电子密码锁在我国也能得到广泛应 用。 3 2 总体设计方案的确定 电子密码锁设计的具体要求 ( 1)、 本设计为了防止密码被窃取要求在输入密码时在 LCD 屏幕上显示 *号。 ( 2)、 设计开锁密码为六位密码的电子密码锁。 ( 3)、 密码输入正确时 LCD 显示 Unlock OK!,密码错误时显示 ERROR
//测试行 GPIO_KEY=0XF0。 switch(GPIO_KEY) { case(0X70): KeyValue=KeyValue。 break。 case(0Xb0): KeyValue=KeyValue+4。 break。 case(0Xd0): KeyValue=KeyValue+8。 break。 case(0Xe0): KeyValue=KeyValue+12。 break。