1、 NO.1 沈 阳 大 学 基于基于 ARM 嵌入式图像处理系统设计与实现嵌入式图像处理系统设计与实现 1.设计目的设计目的 嵌入式系统设计及应用课程是电类专业的主要技术基础课。嵌入式系统设计及应 用课程设计是学习嵌入式系统课程之后的实践教学环节,是对课程理论和课程实验的综合 和补充,其目的在于研究一种能够进行高速图像处理的嵌入式系统架构的设计与实现方法。 针对嵌入式系统本身的特点,设计出具有较强通用性的嵌入式图像处理平台。 图像数据是一种重要的信息资源,随着以计算机和计算机技术为核心的信息科学的发 展,图像处理在通讯、管理、医学、地震、气象、航空航天以及教育等领域,发挥着愈来 愈重要的作用。
2、嵌入式平台拥有小巧、价格低廉、功耗小及维护成本低等优点。因此基于 嵌入式平台构建图像处理系统可以降低其生产维护成本,提高其可靠性和可控件,具有较 高的市场价值。本课设为了加深对嵌入式系统设计及应用课程知识的理解和综合应用, 培养学生综合运用基础理论知识和专业知识解决实际工程设计问题的能力,以及工程意识 和创新能力。 2.设计方案设计方案论证论证 2.1 设计原理设计原理 本课程设计设计采用的是一个 240*320 分辨率的 16 位液晶屏幕,可以通过操作 S3C2410 内部的相关寄存器来直接控制显示,由于采用了 ARMLinux 作为操作系统,可 以直接操作“nux 下的 Framebuff
3、er 设备来完成图像的显示,帧缓冲(Framebuffer)是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式 下直接对显示缓冲区进行读写操作。这种操作是抽象的、统一的。用户不必关心物理显存 的位置、换页机制等等具体细节。这些都是由 Framebuffer 设备驱动来完成的。在应用程序 中首先要打开 Framebuffer 设备,在 Linux系统中 Framebuffer 设备一般映射为/dev/fb,可以 有多个设备。 然后调用 ioctl 提供的借口获取设备信息, 主要是获得当 Framebuffer 设备的分 辨率、色深、每一行数据占的字节数
4、。关键的一步是将屏幕缓冲区映射到用户空间, Framebuffer 设备可以看成是显存的映像,但是 Linux 所有的设备驱动均在内核态工作,所 以无法在当前进程空间中直接访问,通过映射机制可以直接把显存的起始地址映射到当前 进程的地址空间,从而可以快速方便的实现显存,建立映射的方法如下: Pfd=mmap(0,FBDraw_finfo,smem_len,PROT_READ|PROT_WRFTE, MAP_SHARED,df,0);/以 read、write 和 share 方式映射屏幕上左边为(x,y)的点在显存中 NO.2 沈 阳 大 学 的位置是:Pfd+x*(fb_vinfo.bits
5、_pixel)3)+y*fb_finfo.line_length,对这个位置赋相应的 颜色值就可以再屏幕上显示出来。需要注意的是当色深(fb_vinfo.bits_per_pixel)不同时, 颜色值的格式也不一样。 把经过图像处理后的图像数据或者采集到的原始图像数据转化成 Framebuffer 设备的颜 色数据格式(RGB565、RGB888 等)后,将数据复制到从地址 pfb 开始的内存中,就可以 事先图像的显示。 2.2 概述概述 图像处理技术又称“机器视觉” ,乃是将被测对象的图像作为信息的载体,从中提取有 用的信息来达到测量的目的,具有非接触、高速、获得信息丰富等优点。系统一般通过
6、摄 像头采集对象的图像信息,然后通过处理系统对采集到的图像进行数字化的处理和分析, 根据检测要求可得到对象的特征信息, 随后进一步对此进行判断并输出结果。 如图 1 所示, 连杆的表面缺陷通过一个方形 LED 漫反射光源均匀照亮待检测的破口区域,光线照射到对 象表面后, 通过光学镜头成像在摄像头内的光电耦合 CCD 元件 3上并转化成相应的数字图 像信号,CCD 元件可理解为一个由感光像素组成的点阵,每一个像素都一一对应了被测对 象的二维图像特征。数字图像信号经过图像处理系统对图像特征信息的提取和计算得到所 需的测量值,随后通过 RS232 通讯接口把数据传输给 PLC 进行逻辑判断,判断的结果直 接通过设备前面板上的指示灯输出。 图 1 摄像头采集对象的图像信息 2.3 BMP 文件的读入文件的读入 在嵌入式平台上, 并没有现成的 BMP 文件的库函数可以使用。 因此, 如何把一个 BMP 文件读人到内存中进行图像处理算法移植的根本前提。本系统中,主要处理的图像有两大 块:真彩图和 256 色的