嵌入式图像处理系统的设计与实现_第1页
嵌入式图像处理系统的设计与实现_第2页
嵌入式图像处理系统的设计与实现_第3页
嵌入式图像处理系统的设计与实现_第4页
嵌入式图像处理系统的设计与实现_第5页
免费预览已结束,剩余7页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、43682009,30(19计算机工程与设计ComputerEngineeringandDesign0引言传统的图像处理技术主要依赖于大批量的电子计算机设备,大批量的电子设备在使用和保养时产生巨大的经费开支,增加行业成本。而嵌入式设备成本低、能耗小、可靠性高、体积小、重量轻以及维护使用方便等诸多优势。将嵌入式技术与图像处理结合可以开发出成本更低,可控性、可移动性及可靠性更佳的嵌入式图像处理系统。lii-Z=-1硬件平台设计本系统的硬件平台是标准的通用嵌入式平台,其基本构成有嵌入式中央处理器(三星44B0X、输入输出系统(9键的小键盘和4.3寸液晶显示触摸屏和存储体系(同普通的PC一样也具有三层

2、存储体系:缓存(位于处理器中、内存(SDARM以及外存(NandFlash以及各种通信和调试接口。具体如图1所示的硬件平台体系结构。嵌入式系统不同与一般的PC,一般不能直接接受来自键盘的命令,本系统中使用ucos系统软件平台,所以也没有Shell。本系统在上电或者复位时,将自动执行ROM中的Boot-Loader(存于NorFlash的固定地址:0x0,BootLoader将对系统进行标准自检,若自检通过,则将自动引导位于NandFlash中的二进制文件,其文件名固定为System.bin0该文件即为嵌入式图像处理软件系统的镜像文件,自此图像处理系统启动运行。2嵌入式图像处理软件系统设计2.1

3、总体设计思想本系统主要解决的问题就是图像处理如何在嵌入式环境收稿日期:2008-10-12;修订日期:2009-08-05。嵌入式系统工程宋凯,严丽平,甘岚:嵌入式图像处理系统的设计与实现2009,30(194369下的实现,由于嵌入式环境的特性(比如可供选择的编程语言较少,可供使用的API较少等,所以笔者需要着力解决的问题是通用接口(比如BMP文件的读入以及常用算法的移植。为了提高工组效率以及本软件系统的可移植性,笔者决定将常用的接口及图像处理算法均以API的形式封装起来。这样在以后的开发工作中,只要调用封装后的API即可,可以提高系统的通用性。2.2 功能模块设计基于前面的阐述,本系统采用

4、模块化设计,每个模块包含了一类图像处理的算法,而单个模块中的每个算法在执行时只需调用封装好的API即可。具体的功能模块设计是将算法分为7大模块:图像几何变换、边缘检测及轮廓跟踪、直方图修正、半影调和去抖动、图像彩色变换、图像平滑锐化和腐蚀膨胀细化算法。在这7大系统模块下面,再进行到每一级算法的映射。7个模块构成了系统的主体。主层次结构如图2所示。另外在每个模块中有包含了多个图像处理算法,比如图像几何变换模块就含有8种算法,其结构如图3所示。另外的6个模块其设计与之相似,不再赘述。2.3 系统的实现与运行基于上文的阐述,本软件系统的具体实现工作主要包括:文件的读入、算法移植封装以及通用接口的实现

5、等。下文将具体介绍实现工作。2.3.18 MP文件的读入在嵌入式平台上,并没有现成的BMP文件的库函数可以使用。因此,如何把一个BMP文件读入到内存中是进行图像处理算法移植的根本前提。本系统中,主要处理的图像有两大块:真彩图和256色的图像(包括256级灰度图,因此对应设计了两个BMP文件的读入函数。文件的读入是每个算法都需要的,因此将这两个函数放在Graphic.h和Graphic.c中,以备后续的开发使用。下面是本文设计的两个图像数据读取公共函数:GetTruePixel(charbmpname,U32color240320,int*ma-pwidth,int*mapheight;Get2

6、56Pixel(charbmpname,U8colorbuf240320,U32pale256,int*mapwidth,int*mapheight函数1用于将一个名称为bmpname口的真彩图像数据读入color矩阵,同时获得图像的宽和高;函数2用于将一个名称为bmpname口的256色图像数据读入colorbuf矩阵,同时,对应的调色板数据读入pale矩阵中并获得图像的宽和高。2.3.19 法移植本文中所涉及的图像处理算法都是原有的成熟算法,其数学变换的过程都是固定的,笔者的工作就是将这些算法用C语言实现并封装成API的形式以供调用,这个过程相对简单,在此不作赘述。2.3.20 次图形界面

7、的实现为了提供良好的人机界面,本系统设计实现了层次化接口,各级接口以图形方式显示,通过触摸屏或键盘消息进行分支响应,下面以主界面接口为例介绍层次化图形界面的实现。对于整个系统来说,这一部分是核心,它承接了引导界面,并向下发展了各个不同的框架算法。从整体看来,它的作用就是承上启下,将嵌入式系统一次有限的处理进行分级映射。本接口与引导界面的最大不同是在它的消息处理上面,它向下连接了7个二级界面,再加上一个返回的处理,就需要对产生消息的参数做出8种不同的决断。在本级的处理中,还要注意程序设计中的问题,即如何返回上一级以及如何做好下一级向本级的返回。在确定完一些实现细节以后,即可以进行具体算法接口的实

8、现了。出于篇幅的考虑,本文只对其中的一个接口代码进行说明,需要指出的是,接口连接程序的调用需要等待事件的触发,因此,下面的代码都是在一个等待消息的无限循环之中的。(1message=WaitMessage(0;(2switch(message->Message(3caseOSM_TOUCH_SCREEN:(4position1.x=message->WParam&0xffff;(5position1.y=message->WParam>>16;(6if(IsInRect2(prect1,pposition1(7ClearScreen(;(8Menu31(p

9、dc;(9ClearScreen(;(10ShowBmp(pdc,bmpname10,0,0;(11(12elseif第1行代码是等待消息,然后进行消息判断,如果满足第3行消息的类型(触摸屏消息则提取出本消息的两个主要参数:触摸点的横坐标与纵坐标;得到消息参数之后,便进入了各个接口程序的分支判断,根据判断结果转入相应的分支进行函数调用。所以说,上面这段程序中,第8行可以看作是接口部分,它的上下都是接口连接之前的一些必要处理。下面是键盘的处理:(1(2caseOSM_KEY:图2主体选择界面算法选择主体界面图像几何变换边缘检测轮廓跟踪直方图修正半影调和去抖动图像彩色变换图像平滑锐化腐蚀膨胀及细化

10、图3图像几何变换界面图像旋转垂直镜像水平镜像图像平移真彩图缩放真彩图转置43702009,30(19计算机工程与设计ComputerEngineeringandDesign(3keyvalue=onkey(message->WParam;(4switch(keyvalue(5case'1':ClearScreen(;(6Menu31(pdc;(7ClearScreen(;(8ShowBmp(pdc,bmpname10,0,0;(9break;这一部分第2行是承接触摸屏那段代码的switch语句的,如果是键盘消息(OSM_KEY,则转入执行键盘的判断处理,在提取参数方面,键

11、盘的键值要经过我们事先定义好的一个函数的处理。这个函数的功能就是对键盘的键值进行转换,即由读入的参数向ASCII码的转化,这个转化不是固定哪一部分的字符的,可以根据自己的习惯进行定义。经过键盘参数的处理以后,可以对这个参数进行判断;当条件满足时,就可以执行相关的接口函数了。这部分跟触摸屏差不多,调用函数是在第6行。2.3.21 件的选择基于ucos的嵌入式系统的一个缺点就是在独立运行的时,用户难以干预到系统的后台,这给某些嵌入式软件的实现带来了很大的不便。对于本系统而言,需要处理的图像文件如果不能够由用户选择,那么该系统将在很大程度上失去应用价值,因为在那种情况下,文件的名称只能由系统在定义的

12、时候给出,导致系统的每一个算法在执行的时候局限于系统指定的某一个图像,如果用户想要更改加工对象,只有一个办法:改变系统的代码。这显然是软件设计中很大的忌讳。从这一角度出发,引入文件读入是非常有必要的。从随后的实现来说,这一部分实际上也是一个层级,它向上承接了算法选取,向下引出了图像算法的具体执行,它完成的功能就是预览文件和选取文件。仿照用户的操作习惯,首先应该列出flash中的所有bmp文件:(1while(ListNextFileName(&filepos,FileExName,filename(2strChar2Unicode(Ufilename,filename勿等文件名转换为U

13、nicode(3AddStringListCtrl(pMainListCtrl,Ufilename;/向列表框中添加表项(4strcpy(BmpFilei,filename,将文件名存入文件名数组(5strncat(BmpFilei+,FileExName,3;这一段代码主要涉及到几个存放文件名称的数组,由于是bmp文件,扩展文件名是一样的,定义为FileExName='B','M','P',0即可,其它部分需要独立记录在文件名数组BmpFile中。程序中的关键是第一行中循环的控制,它用到了系统的一个API。在列出文件名称以后,接下来就是消息处理

14、,消息判断处理前面已经论述很详细了,不再具体给出,我们下面着重讨论消息的处理判断:(1if(pMsg->WParam=14(2(3ClearScreen(;(4ShowBmp(pdc,BmpFilepMainListCtrl->CurrentSel,0,0,显示图片(5ReDrawOSCtrl(;重画控件(6break;(7)(8if(pMsg->WParam=7(9(10for(j=0;j<12;j+(11bmpnamej=BmpFilepMainListCtrl->CurrentSelj;(12return;(13)这里只需要对两个按键进行判断:Enter键和

15、0键。其中,很明显,从第4、5两行可以看出来,Enter键(14是图像的预览,而0键(7是用户确定了选取图像后的返回,在返回的时候一定要把当前选择的文件名称传递回去。2.3.22 统的运行本图像处理系统采用了典型的事件驱动编程”方式,即程序的流程不再是只有一个入口和若干个出口的串行执行线路;相反,程序会一直处于循环状态,在循环当中,程序从外部输入设备获取某些事件,比如用户的按键或者鼠标的移动,然后根据事件类型做出某种响应,并完成一定的功能,这个循环直到程序接受到某个消息为止。事件驱动”的底层设施,就是常说的消息队列”和消息循环"。通过命令(键盘消息或者是触摸屏消息进入图像处理系统,会

16、有一个引导界面,点击触摸屏上任意位置即进入了系统主界面。系统的主界面如图4所示。如主界面所示,这一级提供了7种图像算法类别的选择。可以点击各个类别对应位置的触摸屏,也可以直接使用键盘操作(键盘快捷键已经在各个图标下方标注。当然,也可以点击返回按钮返回到引导界面。下面以图像几何变换来说明系统的运行过程。在主界面中点击图像几何变换对应的触摸屏位置或者点击键盘“1键,可进入图像几何变换的功能处理模块。图像几何变换的界面如图5所示。在这一界面中,已经提供了各个具体图像算法的接口,可以根据需要来选择相应的图像算法。选择的方法跟主界面是一致的。在选择一个具体的图像算法之后,系统便进入到算法执行部分。在执行

17、部分的开始,系统会先出现一个文件选择界面供用户来选择需要加工的文件,用户选择了文件以后即可以针对该文件进行操作,此时有两个选择:确定和返回。如果选择了确定,则执行下一步;否则跳回上一级功能选择界面。赵漫菲,王光辉:菜单中间件在嵌入式系统中的设计与实现2009,30(194377NULL,&pMenuButton->foregroundC010r,1;uglColorAlloc(displayId,&backgroundColor,UGL_NULL,&pMenuButton->backgroundC010r,1;pMenuButton->fontId=W

18、IN_FONT_SMALL;break;caseMSG_UNMANAGE:/释放分配的资源break;caseMSG_CLASS_DEINIT:if(classId=m_winMenuButtonClassIdwinClassDestroy(classId;m_winMenuButtonClassId=UGL_NULL;break;caseMSG_PTR_BTN1_DOWN:/完成对鼠标按下具体动作的设定break;3结束语目前各个领域基于嵌入式系统的界面开发正在不断的深入和丰富,菜单中间件作为程序员界面开发中的一个重要元素,它的合理开发将会为界面开发者提供稳定的接口及便利的使用,本文所论述的

19、实现过程是以Tornado22WindML3.0及VxWorks5.5作为开发环境,随着编程工具的不断升级,作为中间件的开发工作也必将会有一个新的拓展和丰富。参考文献:1何剑.嵌入式中间件技术研究综述J.大众科技,2008(11:20-22.2许贵平,段爱群.分布式实时嵌入式中间件的调度体系J.微计算机应用,2008(2:84-86.3岳春生,胡松.基于中间件的嵌入式GIS设计J.信息工程大学学报,2004(6:150-153.4杨海东,周落.基于RFID中间件的食品安全监控系统J.微计算机信息,2008(1-2:227-229.5WindRiverSystemsInc.WindML3.0AP

20、IguideM.USA:2002.6WindRiverSystemsInc.VxWorksprogrammer'sguide5.5M.USA:2002.赵振,严隽薇,刘敏,等.一种基于双线性链表结构编码的遗传算法J.计算机应用,2009,29(2:555-557.8何煦岚,何晓岚.基于多链表结构的嵌入式系统内存管理J.计算机应用与软件,2008,25(4:58-59.在选择确定继续以后,系统便会根据图像处理是否需要输入数据而执行不同的处理。如果处理图像需要输入相关参数,则会出现参数读入界面,在参数读入界面用户可以输入图像处理需要的参数,然后选择确定来执行算法,执行算法以后便可以在左边的

21、系统界面区域内看到处理以后的结果了;如果不需要输入数据,系统就会直接执行图像算法,并在系统界面区域显示处理结果。处理结果产生以后,用户可以随时选择返回以进入下一次图像处理的运行中去。3结束语本文首次将嵌入式技术和图像处理技术融合开发出嵌入式图像处理系统,较好的解决了传统产品的缺陷。通过本系统的实际运行表明,该系统达到了设计初期的各项要求,能够在相对有限的嵌入式系统资源中实现常见的多种图像处理变换。相信在未来对于嵌入式图像处理设备的产品化将起到积极的推动作用。但由于硬件平台本身的局限性,该系统在响应速度、显示效果等方面有待进一步优化。参考文献:1李超.一种基于嵌入式图像处理的工程车辆导向装置J.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论