摘 要:本系统以日常生活工作中的日记本为设计雏形,结合个人双页笔记书写习惯,利用计算机技术,较好地实现了一款即写即发、个人双屏触控PDA。既体现了人性化的设计又符合低碳、环保的理念。
关键词:双屏触摸;实时保存;即写即发
1.硬件设计
1.1 系统硬件平台的结构组成
本系统硬件部分主要由大赛组委会指定的由华北工控提供的基于Intel Menlow 平台EMB-4650开发板,一块8.9寸触摸屏,两块8.9寸的TFT液晶屏,以及一些转换板,USB控制器,GPRS模块等组成。EMB-4650 是一款基于Intel Menlow 平台,低功耗EPIC 规格主板。该板采用Intel Menlow 处理器,CPU 速度可达到1.1G/1.6G,内存采用的是板载DDRⅡ512MB 内存,并提供了丰富的高性价比的I/O功能及扩展槽。。在安装好显卡驱动之后,右击桌面选择图形属性,则进入设置界面,在这里你可以进行相关设置,比如本系统的双屏独立显示(选择多屏显示--扩展桌面,主显示器设置为数字显示器,次显示器设置为MID,其中数字显示器对应于DVI的输出,而MID显示器对应于LVDS的输出)。同时还可以进行屏幕旋转、分辨率、颜色等的设置。
1.3 触摸屏设置
本系统所用的触摸屏为四线电阻式触摸屏。电阻式触摸屏安装在显示器表面,主要有两层透明导电层组成,两导电层之间绝缘。
要完全实现触摸功能,还必须安装驱动板和驱动程序。本系统的触摸屏驱动板将四线触摸屏通过USB接口连接到主板,将从四线电阻触摸屏输出的触点位置的电压值通过转换板转换成USB信号连接到主板,从而能够实现定位与控制。本系统所使用的驱动程序是生产商提供的驱动程序,在安装好触摸屏驱动程序之后,要对它进行相应的设置,才能满足我们的系统要求。在安装好程序之后桌面会出现Touch Kit图标,双击Touch Kit图标则进入设置选项,设置好相应的功能就可以进行手写了。尤其需要注意的是鼠标模式,因为本系统要求能够连续书写,所以鼠标模式要设置成一般模式。其余两种模式分别为单击模式和双击模式,单击模式和双击模式分别指的是鼠标只能进行单击和双击,而不能连续平滑的书写。
1.4 GPRS发送与接收模块
本设计选用泽汉T-1008系列的GSM/GPRS无线收发器。其程序方面主要使用AT指令。AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。图3.2为GPRS发送部分框图
图3.2为GPRS发送部分框图
在发送端首先主要是串口的发送程序,然后对GSM/GPRS模块要进行一些初始化设置、网络连接的参数设置,接着发送文件,由于受到GPRS一次发送数据量的限制,所以必须对所要发送的文件进行分组打包处理,最终才能将数据发送出去。
2.软件设计
2.1 笔记书写与实时保存
为了能够更加快捷和及时的将书写信息传递到远端的服务器上,可对所写汉字字符实行实时保存与发送。
通过响应鼠标消息将汉字字符写到客户区。封装的GDI画笔,可被选中设备环境中当前所用的笔。画笔用于绘制对象的边框以及直线和曲线。缺省画笔画一条与一个像素等宽的黑色实线。
要使用画笔,首先要定义一个画笔:CPen pen,然后创建画笔,而创建画笔本系统采用了使用库存对象中的画笔的方法。SelectStockObject可从以下库存笔中选择一个:
(1) BLACK_PEN黑笔
(2) NULL_PEN空笔(不画线或边框)
(3) WHITE_PEN白笔
在客户区,建立画笔后通过响应鼠标消息WM_MOUSEMOVE后,通过函数MoveTo及LineTo书写汉字字符,并且在每次写完一笔后将整个客户区以BMP形式文件保存,不断更新当前文件,达到一种实时保存的效果。
Windows的窗口图像从本质上来说,是Windows在内存DC上绘制的一幅图像,要将此图像存储起来,首先要获得Windows窗口的区域大小,然后将区域中的图像保存在内存DC中,这需要调用函数WriteWindowToDIB;由于Windows的位图分为DDB(与设备相关的位图)和DIB(与设备无关的位图)两种,MFC中定义的CBitmap类封装DDB位图,为了将位图保存到一个文件需要把DDB转换成DIB,这用到函数DDBToDIB;最后再用WriteDIB函数转储成BMP文件。
函数WriteWindowToDIB,首先创建内存设备环境对象,取得窗口区域大小后将窗口图像暂存在一个位图对象中,创建调色板,期间调用第二个函数DDBToDIB,即将DDB(与设备相关的位图)转换为DIB(与设备无关的位图),最后调用WriteDIB,将CBitmap写入文件。
2.2 文字背景分离
为了能够将所写汉字进行分割和查找,必须先将汉字与背景图片分离。本系统中,采用的分割方式是通过将背景图片与合成图片对比的方式,产生仅含所写字符的图片文件,具体处理方式如下:
(1) 将背景
图片读入内存区,建立图片文件实例1
(2) 将绘制好的合成图片读入内存区,建立图片文件实例2
(3) 将两个图片文件实例的数据部分进行对比,提取所写汉字信息,并将其保存为BMP文件。
以图像句柄的方式建立图片文件的实例,HDIB句柄:就是一块存储位图数据的内存区域的地址,HDIB句柄包含:位图信息头、调色板(如果有的话)、DIB图像数据,在ReMoveBgd函数中,读取两幅位图的数据部分,由DIB句柄得到DIB指针并锁定DIB,lpDIB= (LPSTR) ::GlobalLock((HGLOBAL)hDIB),找到DIB图像象素起始位置lpDIBBits = ::FindDIBBits(lpDIB);然后确定从起始位置开始的像素的值,比较背景图中的像素值与合成图像素值是否相同,将不同部分确定为汉字像素信息,同时建立新的位图句柄将汉字信息保存在信息的内存区域,并保存为BMP文件存入磁盘。
2.3 二值化
进行完图像的灰度化处理之后,图像中的每个像素就有了一个灰度值,而灰度值的大小决定了像素的亮暗程度。为进一步处理图像,就需要对灰度图像进行二值化处理。师春礼.手写体字符预处理与识别系统研究.硕士学位论文.北京:北京邮电大学,1995