C#的影像采集软件_论文
影像采集软件是在Windows系统环境下设计,功能方面可以简略的分成拍摄管理、图片文件操作、身份证管理、图像匹配、文件传输和其他辅助功能等几部分,为软件正常工作必备功能。
摄像头是实现后续功能的前提,打开摄像头,设置参数,然后主摄像头拍摄客户要求授权所需的票据、表格等文件,保存图片格式,然后传送至授权中心进行验证。副摄像头拍摄客户周围环境,实时监控,确保交易的安全性。因为视频的预览窗口只设置了一个,所以软件并不支持打开多个摄像头,软件应能扫描的中端相连的而所有摄像头,而操作人员可以自行选择想要打开的摄像头。
图片文件操作是将拍摄所得文件进行处理,以后作为授权是否能通过的依据。摄像头拍摄的所有文件,包括获取的身份证图片都是图片形式的,所以主要的文件操作全部是图片的操作,但图片也毫无疑问仍是文件。C#本身提供了系统的文件操作对话框,规范的代码风格和集成的命名空间使得功能的实现有一定的格式,同样的功能还是对应不同的实现方式,最终选择的基本是比较简单易行的方法。
身份证管理要求获取客户个人身份信息,是授权所必须的信息。影像仪底座有身份证IC卡的感应设备,把二代证放在正确位置即可自动扫描获取二代证图片,并将读取的身份证上的信息保存。考虑到必须有信号检测二代证并触发二代证扫描程序,此处选择线程来实现,在整个软件运行期间持续检测二代证。
图像匹配是对客户身份的验证技术,初步确定客户是否具备授权的基本条件。具体是利用客户身份证上扫描所得的头像图片,与实时拍摄的照片做对比,进行客户身份验证。随着技术的发展,人工的操作逐渐被机器取代,所以身份验证也将由人为的对比身份证与本人变成机器自动比对,提高精确度,减少人工操作。
文件传输主要是用于将软件采集到的图片、文档等远程传送到授权中心服务器。授权中心独立出来也决定了授权与前台业务的分离,为了保证授权业务即时处理,柜台主机与授权服务器的即时通信,将资料远程传送到授权中心也成为必要的功能。
其他外围功能诸如配置文件、设置软件外观、设置参数等不能清晰的说归于哪一类,但也确实是软件正常运行所必须的。
3.2 需求分析查看完整请+Q:351916072获取
3.2.1 概述
作为获取授权所需文件的信息采集软件,影响采集软件其实是影像仪的驱动软件,在整个远程集中授权系统中起着重要作用,因为软件能否正确快速的采集信息是之后授权能否正常进行的前提。根据授权的流程,软件必须具有采集、处理图片等资料的所有功能,并且操作简单,易于使用。软件也必须具有一定的安全性,保证采集数据的完整性。当然友好、美观的操作界面可以更好的满足客户需求。
具体功能方面,软件需能够打开所需摄像头、设置分辨率,拍摄所得票据必须清晰、易于辨认,影像仪是授权系统的前台设备,所以拍摄所得图片若非特殊要求,不必永久保存,身份证同样要求图片不失真,字符信息完整。各类文件都能够预览、保存、删除、打印等,但不可修改信息。软件应能实现主机与授权中心的即时通信,保证图片等文件能快速传送至授权中心。
软件菜单应排列清晰、整齐,为更易于操作,将常用操作直接放在工具栏,并设置右击菜单。
3.2.2操作人言功能需求
根据银行授权所需,此软件主要功能是文件的采集,没有特殊权限的操作,故操作人员使用前也不需经过身份验证等步骤,可直接打开使用,银行柜员应能进行以下操作:
(1) 拍摄管理:选择摄像头,设定分辨率,打开、关闭摄像头,设置参数,视频预览,拍摄图片;
(2)图片操作:显示,选择,预览,保存,另存为,批量修改地址,删除,全部删除,打印,黑白化,缩放,旋转;
(3)身份证管理:自动扫描,二代证图片显示预览,二代证图片可保存、打印,信息自动保存在统计表中;
(4)图像匹配:将二代证头像图片与实时拍摄照片比对,要求一定的速度与准确度;
(5)文件传输:建立主机间连接,实现即时通信,完成图片等文件的快速、高保真传送;
(4)辅助功能:如外设参数设置,开机自动运行,图片列表显示方式等。
以上所有操作都是有鼠标左键单击引发,右键单击引出快捷菜单,符合人们平时的软件使用习惯,操作方便。
3.3 系统功能模块设计
根据需求分析,影像采集软件的功能系统由拍摄管理、图片文件操作、身份证管理、图像匹配、文件传输和其他辅助功能构成,各功能模块之间的联系如图3.1。
作为一个基于Windows 窗体的用户界面软件,从设计的角度来看,所有关联功能设计为一个功能菜单,常用功能直接放在工具栏,尽量使软件功能分类清楚,排列整齐,易于寻找,方便用户使用。界面也设计了一些状态提示,方便用户查看软件运行状态。具体的界面设计如图3.2。
设计方面,所有功能通过主窗体与子窗体联系为一体,主窗体按键可调用子窗体,这是Winform窗体程序的基本结构。所有用户可以进行的操作全部可以由主界面直接或间接的找到,而这也是用户交互界面软件的基本系统结构与用户操作的基本要求。
4.4图像匹配代码设计
Matlab、VC++等软件都可实现图像匹配,不管用何种工具,图像匹配的原理都是一样的。本设计采用了模板匹配,模板匹配的工作过程是:通过在输入图像上滑动图像块对实际的图像块和输入图像进行匹配。
本设计模板匹配的流程是,划分出色彩空间,从左上角开始滑动模板大小的图像块,不断与模板比较,假设模板大小(X,X)具体是:
(1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(X,X)的临时图像;
(2)用临时图像和模板图像进行对比,对比结果记为R;
(3)对比结果R,就是结果图像(0,0)处的像素值;
(4)切割输入图像从(0,1)至(X,X+1)的临时图像,对比,并记录到结果图像;
(5)重复(1)~(4)步直到输入图像的右下角。用C#设计的图形匹配主要代码如下:
//色彩空间
Image<Gray, Single> imageResult;
if (colorSpace == "Gray")
imageResult = ((Image<Gray, Byte>)imageInput2).MatchTemplate((Image<Gray, Byte>)imageTemplate2, tmType);
else if (colorSpace == "HSV")
//强制转换,图像类型转化为MatchTemplate类型
imageResult = ((Image<Hsv, Byte>)imageInput2).MatchTemplate((Image<Hsv, Byte>)imageTemplate2, tmType);
else
imageResult = ((Image<Bgr, Byte>)imageInput2).MatchTemplate((Image<Bgr, Byte>)imageTemplate2, tmType);
//归一化结果
CvInvoke.cvNormalize(imageResult.Ptr, imageResult.Ptr, 1d, 0d, NORM_TYPE.CV_MINMAX, IntPtr.Zero);
//最匹配点,以及该点的值
double bestValue;
Point bestPoint; 查看完整请+Q:351916072获取
FindBestMatchPointAndValue(imageResult, tmType, out bestValue, out bestPoint);
//在匹配点周围画一个与模板等大的矩形
Rectangle rect = new Rectangle(new Point(bestPoint.X - imageTemplate.Size.Width / 2, bestPoint.Y - imageTemplate.Size.Height / 2), imageTemplate.Size);
imageResult.Draw(rect, new Gray(bestValue), 2);
//结果保存入数组
imageResults[i] = imageResult;
目 录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1研究背景与现状 1
1.2研究内容 3
第2章 开发工具分析 5
2.1 C#介绍 5
2.1.1 C#基本特点 5
2.12 C#结构 6
2.2 Windows窗体 8
2.3 Microsoft Visual Studio 2010 8
2.3.1建立Windows Form程序 8
2.3.2编译、调试 10
第3章 总体设计 11
3.1影像采集软件系统结构 11
3.2需求分析 12
3.2.1概述 12
3.2.2操作人员功能需求 12
3.3系统功能模块设计 13
3.3.1拍摄管理设计 14
3.3.2图片文件操作设计 15
3.3.3身份证管理设计 15
3.3.4图像匹配设计 16
3.3.5文件传输设计 18
3.3.6其他操作设计 18
3.4系统流程分析 19
第4章 代码设计 21
4.1摄像头操作代码设计 21
4.2图片文件操作代码设计 24
4.3二代证操作代码设计 29
4.4图像匹配代码设计 31
4.5文件传输代码设计 32
4.6其他功能代码设计 33
第5章 功能测试 35
第6章 结论 39
参考文献 40
致谢 41
附录 42
英文翻译 50
任务书 60 查看完整请+Q:351916072获取
原文链接:http://www.jxszl.com/jsj/jsjkxyjs/355.html