微波EDA网,见证研发工程师的成长! 2025妤犵儑鎷�04闁哄牞鎷�02闁哄喛鎷� 闁哄嫮鍠愬﹢锟�濞戞搫鎷�
首页 > 应用设计 > 工业电子 > 基于ARM的嵌入式数字图像处理系统

基于ARM的嵌入式数字图像处理系统

时间:04-28 来源:互联网 点击:
3 图像处理

图像处理是一门复杂的技术,它涉及到图像预处理、图像分析、图像理解等多个方面。它和其它多个学科有着密切的联系,尤其是近年来模式识别理论和技术、人工智能理论、分形理论以及小波分析技术等相关理论和技术的发展,为图像处理技术的研究提供了坚实的理论基础和新的分析手段。针对于不同应用背景采用的处理流程和算法各不相同,但是都必须首先获得图像的数据,然后在根据需要选择处理流程和相关算法。在这里本文并不详细介绍图像处理的流程和算法,只给出在本系统平台上实现的图像处理算法的效果图。图3是通过摄像头采集到的彩色图像,图4是经过灰度转化、二值化、边缘检测、细化和连通域榆测后的效果图。

闁告梻濮惧ù鍥ㄧ▔閿燂拷...
图3 摄像头采集到的图像

闁告梻濮惧ù鍥ㄧ▔閿燂拷...
图4 处理效果显示

4 图像显示

本设计采用的是一个240X320分辨率的16位液晶屏幕,可以通过操作S3C2410内部的相关寄存器来直接控制显示,由于采用了ARM-Linux作为操作系统,可以直接操作Linux下的Framebuffer设备来完成图像的显示,帧缓冲(Framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的、统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。

在应用程序中首先要打开Framebuffer设备,在Linux系统中Framebuffer设备一般映射为/dev/fb,可以有多个设备。然后调用ioctl提供的接口获取设备信息,主要是获得当前Framebuffer设备的分辨率、色深、每一行数据占的字节数。关键的一步是将屏幕缓冲区映射到用户空间,Framebuffer设备可以看成是显存的映像,但是Linux所有的设备驱动均在内核态工作,所以无法在当前进程空间中直接访问,通过映射机制可以直接把显存的起始地址映射到当前进程的地址空间,从而可以快速方便的实现显示,建立映射的方法如下:

pfb=mmap (0,FBDraw_finfo.smem_len,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0); //以read、write和share方式映射

屏幕上坐标为(x,y)的点在显存中的位置是:

pro+x * (fb_vinfo.bits_per_pixel>>3)+Y * fb_finfo.line_length, 对这个位置赋响应的颜色值就可以在屏幕上显示出来。需要注意的是当色深(fb_vinfo.bits_per_pixel)不同时,颜色值的格式也不一样。

把经过图像处理后的图像数据或者采集到的原始图像数据转化成Framebuffer设备的颜色数据格式(RGB565、RGB888等)后,将数据复制到从地址pfb开始的内存中,就可以实现图像的显示。

5 结束语

本文设计了以ARM核处理器S3C2410为计算与控制核心,以ARM-Linux为操作系统的图像采集、处理、显示的一个平台,用于图像处理中算法验证,调试与实际使用表明,该系统具有良好的使用效果和较高的丁作效率,现已用于战场侦察系统的演示。同时本系统具有功耗小、体积小、网络功能强等特点,可以方便的扩展到侦察、安防、视频采集等领域。

本文创新点:利用ARM平台,结合嵌入式操作系统进行图像采集和处理,在较小的系统内实现了主要的图像系统功能,取得较好的效果,并具有良好的应用前景。

项目经济效益(50万元)

作者:贾晶晶,刘明杰,孙凯      来源:《微计算机信息》(嵌入式与SOC)2009年第3-2期

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top