首页 200元为学校组建电子照片采集系统

200元为学校组建电子照片采集系统

举报
开通vip

200元为学校组建电子照片采集系统200元为学校组建电子照片采集系统 《中国电脑教育报》雷前君 现在很多学校都建立了电子档案,在建立电子档案的过程中,最难的信息采集就是照片。尽管可通过扫描仪用普通照片进行扫描,但是操作复杂,而且速度很慢。用数码摄像机或数码照相机组建的电子照片采集系统尽管速度快,操作简便,效果好,但是投资较大。 笔者经过探索,花了不到200元自己动手建立了我校的电子照相系统,在我校的教育管理中发挥了重要作用(如打印准考证、学生证、出入证、住宿证、考场座位图等),而且操作简便,照片质量也不错。现将经验介绍给大家分享。 硬件准备...

200元为学校组建电子照片采集系统
200元为学校组建电子照片采集系统 《中国电脑教育报》雷前君 现在很多学校都建立了电子档案,在建立电子档案的过程中,最难的信息采集就是照片。尽管可通过扫描仪用普通照片进行扫描,但是操作复杂,而且速度很慢。用数码摄像机或数码照相机组建的电子照片采集系统尽管速度快,操作简便,效果好,但是投资较大。 笔者经过探索,花了不到200元自己动手建立了我校的电子照相系统,在我校的教育管理中发挥了重要作用(如打印准考证、学生证、出入证、住宿证、考场座位图等),而且操作简便,照片质量也不错。现将经验介绍给大家分享。 硬件准备 1. 能够运行Windows 98或更高版本的计算机。 2. USB接口摄像头一只(一般的电脑市场都有,约200元)。 将USB摄像头接入电脑,安装好驱动程序和应用软件,打开应用软件,在Video Format设置中将其Image Size(图像尺寸)设为CIF(352×288)。 软件准备 1. Visual Foxpro(6.0以上版本,以下简称VFP)。 2. AvCap.ocx控件 AvCap( AVCapture.zip)是一个基于DirectShow过滤器的音/视频捕捉和预览的ActiveX控件。在应用程序或页面中放一个AvCap,只需很少的代码就可让您的软件支持音/视频捕捉了。 3. PicClp32.ocx控件(类名PictureClip)。 本控件位于Windows的System或System32文件夹内,在安装VFP时被自动安装。 由于使用AvCap控件所捕捉的图像尺寸与实际应用时的图像尺寸不太一致,因此需用PictureClip控件将其剪裁为指定尺寸。用它的Picture属性将源位图加载到控件中,再用ClipX和ClipY属性指定剪裁区域的左上角。用 ClipHeight和ClipWidth属性指定剪裁区域的范围。然后利用VFP的SavePicture函数将其写入到指定的位图文件中。 编程 1( 准备工作 (1)为便于管理,在某驱动器(如D盘)的根目录下建一子目录Photo,将下载的AcCap.ocx控件拷入该目录,用“画笔”程序画一图像,高×宽=288×216(如图1),命名为Default.bmp,将其保存入Photo目录。在本目录下再建一子目录Bmp,用于存放拍照的照片。 (2)建一数据库表Student.dbf,将其存入Photo目录,表结构如图2。 在图2所示表中,索引类型设为“候选索引”的目的是保证学生在数据库表中的惟一性。在电子照相时,以学号作为该学生的照片文件名,可避免重复。xh(学号)字段的8位可按如下格式输入,如20040001,其中前四位代表入学年级,后四位代表学生序列,学号范围从20040001至20049999。 (3)注册控件:可在命令行方式下注册两个控件,如:regsvr32 AvCap.ocx、regsvr32 PicClp32.ocx,也可在VFP环境中,通过菜单“工具?选项?控件?ActiveX控件”方式来注册。 2( 制作表单 (1)运行VFP,建立如图3所示的表单集Formset1,添加两个表单Form1和Form2。设置Form1的Caption属性为预览窗口,在其内添加AvCap控件,控件的Name属性设为OleAvCap;设置Form2的Caption属性为照相窗口,在其内添加如图3所示的6个控件(图像剪裁控件PictureClip、图像控件Image、列表框控件List、命令按钮控件CommandButton三个),控件的Name属性分别设为OlePicClip 、Image1、List1、CmdPhoto、CmdNext、CmdQuit。 (2)将数据库表Student.dbf添加到该表单集的数据环境中去,将CurSor1的Order属性设为xh。 (3)编写程序代码: 在Formset1的Init Event(即Formset1.Init)中添加以下代码: IF thisformset.form1.oleAvCap.CurVcd=0 thisformset.form1.oleAvCap.PlayState =1 ELSE =Messagebox("视频设备连接不上~ "+chr(13)+"请检查电源线或数据线~", 0+16,"错误信息~") RETU .F. ENDIF thisformset.form2.CmdPhoto.setfocus 在Form1的Init Event(即Form1.Init)中添加以下代码: this.Left=3 this.Top=1 this.Width=216 &&&&&&与下面要拍照的照片宽度一致 this.Height=312 this.MaxButton=.F. this.MinButton=.F. this.ControlBox=.F. this.BorderStyle=1 this.Caption="预览窗口" *****以下设置AvCap控件的大小及位置 this.OleAvCap.Top=12 this.OleAvCap.Width=352 this.OleAvCap.Height=288 this.OleAvCap.Left=-(352-216)/2 &&&&&&将本控件居中,保证视频流中人像居中 在Form2的Init Event(即Form2.Init)中添加以下代码: this.Left=228 this.Top=1 this.Width=394 this.Height=394 this.MaxButton=.F. this.MinButton=.F. this.ControlBox=.F. this.BorderStyle=1 this.Caption="照相窗口" *****以下设置image控件的大小、位置等属性 this.image1.Left=10 this.image1.Top=12 this.image1.Width=216 this.image1.Height=288 this.image1.BorderStyle=1 IF file('bmp\'+xh+'.bmp') this.image1.picture='bmp\'+xh+'.bmp' ELSE this.image1.picture='default.bmp' ENDIF *****以下设置List控件的大小、位置等属性 this.List1.ColumnCount=2 this.List1.Left=236 this.List1.Top=12 this.List1.Width=148 this.List1.Height=288 this.List1.FontSize=12 this.List1.RowSourceType=0 this.List1.RowSource="student.xh,xm" this.List1.RowSourceType=6 this.List1.ListItemId=1 在List1的InteractiveChange Event中添加以下代码: *****以下代码保证记录变动后,学生照片跟着刷新 IF file('bmp\'+xh+'.bmp') thisform.image1.picture='bmp\'+xh+'.bmp' ELSE thisform.image1.picture='default.bmp' ENDIF thisform.CmdPhoto.setfocus 在CmdPhoto的Click Event(CmdPhoto.Click)中添加以下代码: IF file('bmp\'+xh+'.bmp') ?chr(7) nChoice=Messagebox("照片已存在~"+chr(13)+chr(13)+"替换吗,", 4+32+256,"提示信息~") IF nChoice=6 &&&&&&&&&&&&&&&&&&选择YES ****以下代码先抓取当前视频流中的一幅图像将其保存为大照片 **** thisformset.form1.OleAvCap.TakePictureToFile('bmp\'+xh+'.bmp') ****以下代码通过PicClip32.ocx控件将大照片剪裁为小照片******* thisform.OlePicClip.picture=loadpicture('bmp\'+xh+'.bmp') thisform.OlePicClip.clipx=(352-216)/2+1 thisform.OlePicClip.clipy=0 thisform.OlePicClip.clipheight=288 thisform.OlePicClip.clipwidth=216 SavePicture(thisform.OlePicClip.clip,'bmp\'+xh+'.bmp') ENDIF ELSE thisformset.form1.OleAvCap.TakePictureToFile('bmp\'+xh+'.bmp') thisform.OlePicClip.picture=loadpicture('bmp\'+xh+'.bmp') thisform.OlePicClip.clipx=(352-216)/2+1 thisform.OlePicClip.clipy=0 thisform.OlePicClip.clipheight=288 thisform.OlePicClip.clipwidth=216 SavePicture(thisform.OlePicClip.clip,'bmp\'+xh+'.bmp') ENDIF thisform.List1.InteractiveChange &&&&刷新照片 this.parent.CmdNext.setfocus &&&&与CmdNext按钮转换焦点实现轻松拍照 在CmdNext的Click Event(CmdNext.Click)中添加以下代码: thisform.List1.ListItemId=thisform.List1.ListItemId+1 thisform.List1.InteractiveChange &&&&刷新照片 this.parent.CmdPhoto.setfocus &&&&与Cmdphoto按钮转换焦点实现轻松拍照 在CmdQuit的Click Event(CmdQuit. Click)中添加以下代码: thisformset.release 至此,程序编写完毕,按按钮运行程序就可进行电子照相了。照相过程非常方便,只需按回车键或空格键就可轻松采集照片。要保证照片质量,USB摄像头最好固定,并且保证光线明亮、均匀、自然、柔和。 图1 默认图片 图2 数据表
本文档为【200元为学校组建电子照片采集系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:53KB
软件:Word
页数:0
分类:
上传时间:2018-03-16
浏览量:20