




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于ARM嵌入式图像处理系统设计与实现1.设计目的嵌入式系统设计及应用课程是电类专业的主要技术基础课。嵌入式系统设计及应用课程设计是学习嵌入式系统课程之后的实践教学环节,是对课程理论和课程实验的综合和补充,其目的在于研究一种能够进行高速图像处理的嵌入式系统架构的设计与实现方法。针对嵌入式系统本身的特点,设计出具有较强通用性的嵌入式图像处理平台。图像数据是一种重要的信息资源,随着以计算机和计算机技术为核心的信息科学的发展,图像处理在通讯、管理、医学、地震、气象、航空航天以及教育等领域,发挥着愈来愈重要的作用。嵌入式平台拥有小巧、价格低廉、功耗小及维护成本低等优点。因此基于嵌入式平台构建图像处理系
2、统可以降低其生产维护成本,提高其可靠性和可控件,具有较高的市场价值。本课设为了加深对嵌入式系统设计及应用课程知识的理解和综合应用,培养学生综合运用基础理论知识和专业知识解决实际工程设计问题的能力,以及工程意识和创新能力。2.设计方案论证2.1设计原理本课程设计设计采用的是一个240*320分辨率的16位液晶屏幕,可以通过操作S3C2410内部的相关寄存器来直接控制显示,由于采用了ARMLinux作为操作系统,可以直接操作“nux下的Framebuffer设备来完成图像的显示,帧缓冲(Framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模
3、式下直接对显示缓冲区进行读写操作。这种操作是抽象的、统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。在应用程序中首先要打开Framebuffer设备,在Linux系统中Framebuffer设备一般映射为/dev/fb,可以有多个设备。然后调用ioctl提供的借口获取设备信息,主要是获得当Framebuffer设备的分辨率、色深、每一行数据占的字节数。关键的一步是将屏幕缓冲区映射到用户空间,Framebuffer设备可以看成是显存的映像,但是Linux所有的设备驱动均在内核态工作,所以无法在当前进程空间中直接访问,通过映射机制可以直接
4、把显存的起始地址映射到当前进程的地址空间,从而可以快速方便的实现显存,建立映射的方法如下:Pfd=mmap(0,FBDraw_finfo,smem_len,PROT_READ|PROT_WRFTE,MAP_SHARED,df,0);/以read、write和share方式映射屏幕上左边为(x,y)的点在显存中的位置是:Pfd+x*(fb_vinfo.bits_pixel)3)+y*fb_finfo.line_length,对这个位置赋相应的颜色值就可以再屏幕上显示出来。需要注意的是当色深(fb_vinfo.bits_per_pixel)不同时,颜色值的格式也不一样。把经过图像处理后的图像数据或
5、者采集到的原始图像数据转化成Framebuffer设备的颜色数据格式(RGB565、RGB888等)后,将数据复制到从地址pfb开始的内存中,就可以事先图像的显示。2.2概述图像处理技术又称“机器视觉”,乃是将被测对象的图像作为信息的载体,从中提取有用的信息来达到测量的目的,具有非接触、高速、获得信息丰富等优点。系统一般通过摄像头采集对象的图像信息,然后通过处理系统对采集到的图像进行数字化的处理和分析,根据检测要求可得到对象的特征信息,随后进一步对此进行判断并输出结果。如图1 所示,连杆的表面缺陷通过一个方形LED漫反射光源均匀照亮待检测的破口区域,光线照射到对象表面后,通过光学镜头成像在摄像
6、头内的光电耦合CCD 元件3上并转化成相应的数字图像信号,CCD 元件可理解为一个由感光像素组成的点阵,每一个像素都一一对应了被测对象的二维图像特征。数字图像信号经过图像处理系统对图像特征信息的提取和计算得到所需的测量值,随后通过RS232 通讯接口把数据传输给PLC 进行逻辑判断,判断的结果直接通过设备前面板上的指示灯输出。图1 摄像头采集对象的图像信息2.3 BMP文件的读入在嵌入式平台上,并没有现成的BMP文件的库函数可以使用。因此,如何把一个BMP文件读人到内存中进行图像处理算法移植的根本前提。本系统中,主要处理的图像有两大块:真彩图和256色的图像(包括256级厌度图),因此对应设计
7、了两个BMP文件的读入函数,并将这两个函数放在Graphich和Graphicc中,以备后续的开发使用。两个函数为:GetTruePixel(char bmpnameIl,U32 color24011320J,int*mapwidthint*mapheight);Get256Pixel(char bmpname。U8 cdorbutl240113201,U32 pale256int 4mapwidth,int*mapheight)。函数l用于将一个名称为bmpnameH的真彩图像数据读入color矩阵,同时获得图像的宽和高;函数2用于将一个名称为bmpname的256色图像数据读人colorb
8、uf矩阵,同时,对应的调色板数据读入pale矩阵中并获得图像的宽和高。2.4图像增强算法设计在图像处理中,当光学系统成像时出现背景与目标灰度范围相对比较窄,即低对比度的情况,一般会采用对图像进行灰度的拉伸变换,从而加大特征目标与背景的灰度差,实现图像增强,以利于提取出特征目标来灰度变换可分为线性灰度变换、分段线性变换、非线性变换本研究采用线性灰度变换,该方法用于克服当图像由于成像时曝光不足或过度所产生的对比度不足的弊病假设原图像八茗,y)的灰度范围为a,b,希望变换后图像g(x,y)的灰度范围扩展到c,d,其数学表达式为:g(x,y)=c (0f(x,y)a)g(x,y)=(d-c)/(b-a
9、)+c (af(x,y) b)g(x,y)=d (bf(x,y) Mf)式中:Mf表示(x,y)的最大值2.5图像分割算法设计经过图像增强后,要将一幅图像分解为若干互不交叠的、有意义的、具有相同性质的区域,并从中提取出所感兴趣的目标,即图像分割图像分割有边缘检测和阈值分割,这里采用阈值分割方法阈值分割是基于灰度阈值的分割方法,它通过设置阈值,把像素点按灰度级分若干类,从而实现图像分割把一幅灰度图像转换成二值图像是阈值分割的最简单形式,设原始图像为f(x,y),首先就是按一定准则在f(x,y)中找出一个灰度值t作为阈值,将图像分割为两部分,即把大于等于该阈值的像素点的值置成1,小于阈值的像素点置
10、为0阈值运算后的图像为二值图像g(x,Y)g(x,y)=1 (f(x,y) t)g(x,y)=0 (f(x,y)t)上式中全局阈值t的选择直接影响到分割效果通常可以通过分析灰度直方图来确定它的值,最常见的方法是利用灰度直方图来确定它的值,利用灰度直方图求双峰,选择两峰之间谷底处的灰度值作为阈值2.6图像平滑算法设计图像在生成和传输过程中常受到各种嗓声的干扰和影响,使图像质量下降。为了抑制噪声改善图像质量,必须对图像进行平滑处理。通常,将数字图像的平滑技术4划分为两类。一类是全局处理,即对噪声图像的整体或大的块进行校正得到平滑图像。但这类方法需要知道信号和噪声的统计模型,且运算量较大。另一类平滑
11、技术是对噪声图像使用局部算子。当对某一像素进行平滑处理时,仅对它的局部小邻域的一些像素加以运算,其优点是计算效率高,而且可以多个像素并行处理,因此可以实现实时或者准实时处理。(1)平滑线性滤波器(均值滤波)一般来说,假设MXN的图像(x,y)为给定的含有噪声的图像,用m*n大小的滤波器掩模进行线性滤波结果为g(x,y),在数学上可以表现为:其中,a=(m-1)/12, b=(n-1)/12, w(s,t)为滤波器系数。为了得到一副完整的经过滤波处理的图像,必须对x=0,1,2,.M-1和y =0,工,2,.,N-1依次应用公式。这样,就保证了对图像中的所有像素进行了处理。一般可选取以下几种模板
12、: 模版1 模版2 模版3比较常用 的是模板3,它又被称为高斯(Gauss)模板,它为了突出模板中心像素本身的重要性,对所有的模板系数,不是一视同仁,而是引入了加权系数,可以看出,离原点距离越近的点,加权系数越大。空间均值处理的一个结果是,较大物体变得像“斑点”而易于检测,但那些较小物体的强度与背景混合在了一起。为此,在滤波后可增加阀值处理,即将滤波后的图像与选定的阀值相比较,根据比较结果决定最后的灰度值。该方法对抑制椒盐噪声比较有效,对保护仅有微小灰度差的细节和纹理也有效。(2)平滑非线性滤波器(统计排序滤波器)统计排序 滤波器是一种非线性的空间滤波器,它的响应基于图像滤波器包围的图像区域中
13、像素的排序,然后由统计排序结果决定的值代替中心像素的值。统计排序滤波器中最常见的例子就是中值滤波器,正如其名,它是将像素邻域内灰度的中值代替该像素的值。中值滤波器的主要功能是使拥有不同灰度的点看起来更接近于它的临近值。中值滤波器使用非常普遍,这是因为对于一定类型的随机噪声,它提供了一种优秀的去噪能力,比小尺寸的线性平滑滤波器的模糊程度明显要低。中值滤波器对处理脉冲噪声(椒盐噪声)非常有效,因为这种噪声是以黑白点叠加在图像上的。尽管在图像处理中,中值滤波器是用得最广泛的统计滤波器,但这并不是说它是唯一的。所谓中值就是一系列像素值的第50%个值,当我们取100%个值,此时就是最大滤波器,相反,当取
14、0%的值时就变成了最小滤波器。2.7 图像缩放(平移以及转置)一般采用插值法,有如下几种插值算法:最邻近插值(近邻取样法):最临近插值的的思想很简单。对于通过反向变换得到的的一个浮点坐标,对其进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目的像素的像素值,也就是说,取浮点坐标最邻近的左上角点(对于DIB是右上角,因为它的扫描行是逆序存储的)对应的像素值。可见,最邻近插值简单且直观,但得到的图像质量不高。双线性内插值:对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非负整数,u、v为0,1)区间的浮点数,则这个像素得值 f(i+u,j+
15、v) 可由原图像中坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)其中f(i,j)表示源图像(i,j)处的的像素值,以此类推这就是双线性内插值法。双线性内插值法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况。由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。3.设计内容3.1硬件设计数字图像处理系统是执行处理图像、分析理解图像信息
16、任务的计算机系统.尽管图像处理技术应用广泛,图像处理系统种类很多,但他们的基本组成是相近的口它们主要含有:图像输入设备、执行处理分析与控制的计算机图像处理机、输出设备、存储系统中的图像数据库、图像处理程序库与模型库。其中,负责执行图像处理与分析的图像处理机是整个系统的核心部分,它关系着图像的处理效果,及系统的整体性能。本系统选用的是韩国三星电子公司推出的一款基于ARM920T内核的S3C2410嵌入式微处理器。S3C2410把外部复位信号作为一个中断处理,在系统复位时,程序指针(PC)被设置为0,程序跳转到0x00000000开始运行。此空间对应BankO,系统的2MB的NORFIash和处理
17、器的Bank0相连接。在NORFlash中存储的是BootLoader,它负责配置处理器的结构、工作模式以及自动检测系统的各个硬件是否工作正常。系统经过初始化和自检后,BootLoader负责把16MBNANDFlash的zlmage(即软件系统的镜像文件)复制到0xc0008000地址(此地址是系统64MB SDRAM的首地址)。然后,引导程序把PC指向0xc0008000地址,系统开始运行。图2 ARM开发板S3C2410芯片3.2软件设计结合S3C2410处理器的特点基于该芯片构建嵌入式图像处理系统,设计者必须考虑其通用性、响应速度及对于硬件的可操控性。正是基于这样的考虑,分三层构建嵌入
18、式图像处理系统的软件体系:ARM Linux的建立;图形用户界面(MiniGui)的移植;图像处理软件的设计编码。其中ARM Linux的建立是构建嵌入式Linux系统的通用步骤 3.3 LCD显示模块从S3C24 10的LCD控制器出来的信号线包括24根数据线和若干根控制线。这些信号线是经过74HC245隔离后接到LCD模块的,对于256色LCD只需要其中低8位数据线即可(如图所示)。LCD模块除了需要控制信号和数据信号外,还需要一个22V左右的工作电压和上千伏的背光电压。前者MAX629升压后得到,后者由一个逆变器模块提供。图3 S3C24103.4运行代码程序图像数据存储的主程序:FIL
19、E*file=fopen(O.bmp,wb);writebmpfileheader(file);/*写文件头函数*/writebmpinfoheader(file);/* 写信息头函数*/writeimagedata(file);/* 写图像数据函数*/fclose(fi le);voidwriteimagedata(FILE* file) Int datapointer;Int mydata ;for (int i= 0; i = 239; i+)/*共240行*/datapointer -data+(239-i )*3 20 ;for(int j= 0;j =150) pos=0; for
20、(t=0;t5;t+) textinit1t=strxt; SetTextCtrlText(text1,textinit1,TRUE); for(t=0;t=0;i-)pbmp=bmp;if(!ReadOSFile(pfile, bmp,wold*nbyte+(wold*nbyte)%2)break;for(j=0;jwold;j+) color=*pbmp; for(k=0;knbyte-1;k+) color=8;pbmp+;color|=*pbmp; pbmp+;colorbufij=color;wnew = (U32)(wold*zoomRatio+0.5); hnew = (U32)
21、(hold*zoomRatio+0.5); for(y1=0;y1hnew;y1+)for(x1=0;x1=0;i-)pbmp=bmp;if(!ReadOSFile(pfile, bmp,cx*nbyte+(cx*nbyte)%2)break;for(j=0;jcx;j+)color=*pbmp;for(k=0;knbyte-1;k+)color=8;pbmp+;color|=*pbmp;pbmp+;SetPixel(pdc,i, j, color); CloseOSFile(pfile); OSTimeDly(200); 4.运行结果4. 1图像平移效果图平移前的图像如图3所示:图4 平移前的图像平移后的图像:图5 平移后的图像4.2图像转置效果图图6 图像转置效果4.3 图像缩放效果图7 图像的缩放效果5设计体会通过这次课程设计,我收获了很多,也使我对嵌入式相关的基本知识有了进一步的提高,并在实践中对各种概念有了进一步的深化,开始的时候总觉得很简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海普陀区2025年高三压轴卷化学试卷含解析
- 康复运动训练培训课件
- 工程供应链管理概述
- 福建省泉州市2023年第29届WMO竞赛六年级数学下学期竞赛试卷
- 2025届福建省永安市一中高考化学三模试卷含解析
- 手工灯具制作课件
- 截瘫定位诊断
- 2025届江苏省横林高级中学高考化学考前最后一卷预测卷含解析
- 劳动安全教育小班
- 山东省潍坊市示范中学2025年高三第一次模拟考试化学试卷含解析
- 沪教版三年级下册数学第二单元 用两位数乘除 测试卷附完整答案(典优)
- 酒店安全隐患排查奖惩制度
- 发生治疗错误的应急预案
- 废旧家电拆解与零件再制造工艺
- 农产品食品检验员(高级)职业技能鉴定考试题库
- 【MOOC】模拟电子电路实验-东南大学 中国大学慕课MOOC答案
- 2024年注册会计师考试税法科目试卷与参考答案
- 《大坝安全监测培训》课件
- 2024年全国中学生生物学联赛试题含答案
- 大学藻类课件教学课件
- 报关实务-教学课件 第一章 海关概念
评论
0/150
提交评论