中北大学2013届毕业设计说明书
的开源以及可移植性,可以很方便的形成一个专用的嵌入式系统。当硬件系统构建完成以后,剩下的便是图像处理的一些具体算法了。首先要对采集到的图像进行数字化处理,当然现在好多图像采集卡或其它图像采集设备已经集成了该功能。当数字化之后,需要对图像信息进行编码,以满足传输和存储的要求,编码可以压缩图像的信息量,但图像的质量几乎不变。由于图像信息量巨大,因此压缩对图像的传输与存储也是十分必要,总的分为有损压缩和无损压缩两大类。图像的增强和复原往往是图像处理涉及最多的,图像增强的目标是改进图片的质量,包括对比度、去掉模糊和噪声等,图像复原是在假定已知模糊或噪声模型时,试图估计原图像的一种算法。二者开始都是采用频率域的方法,现在很多开始采用空间域方法和代数方程的方法来实现。
4.4 图像显示
现在我们常常可以看到的图像显示基本上都是采用LCD,也逐渐有越来越多LED背光的显示屏开始出现。不同的显示屏幕可能会有不一样的显示效果,但是对于一个图像处理系统来说,显示只能对最后的效果有一些更好的表达,并不能本质上决定一个图像处理系统的优劣。所以这里对显示不做过多深述,采用普通显示屏幕即可。
4.5 网络通讯
针对网络越来越普及的状况,现今大多的嵌入式图像处理系统都集成了网络通讯功能,可以更加方便的与远程服务器进行数据交换,比如说现在应用在交通上的监控系统都采用了这种模式。因此针对这种趋势,系统设计时,在完成基础功能的实现后,应尽可能加入与主机通讯的功能。
第五章 详细设计
本系统采用三星公司的S3C2440芯片来进行系统的实现。进行基于linux的
第 32 页 共 45 页
中北大学2013届毕业设计说明书
应用移植,系统实现的源代码可于附录中找到。
5.1 Linux嵌入式系统的构建
Linux的移植大多可分为三步,分别是bootloader、kernel、rootfilesystem。
5.1.1 启动引导程序的移植
与PC机不同,嵌入式设备的BIOS大多与bootloader集成在一起。因此,这里与普通的电脑系统不同,它会额外涉及到一些与芯片有关的修改。本系统移植的现在很流行的u-boot,版本是1.1.6。
一、交叉编译器安装,uboot源代码解压;
二、修改配置文件,主要是修改MAKEFILE和config文件; 三、修改源文件,配置内存,时钟,串口波特率; 四、增加nandflash初始化代码; 五、增加DM9000网卡支持; 六、增加从nand flash 启动功能; 七、让uboot支持加载根文件系统;
5.1.2 Linux内核移植
本系统使用的是linux内核,版本是2.6.32.2。kernel移植时,对于其配置,提供了几种不同的配置方法,我在这里使用的是菜单配置。
一、 解压源代码linux-2.6.32,配置缺省文件; 二、增加rtc设备,修改晶振,修改nandflash分区;
三、内核裁剪:配置DM9000网卡,配置触摸屏,配置显示器; 四 、进行菜单配置:make menuconfig; 五、编译:make;
六、使用u-boot提供的工具生成u-boot可以支持的linux内核镜像文件。
第 33 页 共 45 页
中北大学2013届毕业设计说明书
5.1.3 根文件系统的移植
本系统的根文件系统使用经典工具busybox制作。这里也是采用的菜单配置。 一、解压busybox;
二、进行默认配置make defconfig,然后进入菜单配置界面make menuconfig; 三、在生成_install文件夹中创建linux需要的一些基本目录 四、制作jffs2根文件系统 五、制作yaffs2根文件系统
最终移植时我使用的是jffs2根文件系统。 5.2 图像处理功能的实现
由于系统需要对原始的图像数据进行相应的处理,因此系统所使用的原图均为bmp非压缩格式的图片。
5.2.1 彩色图像的灰度化
彩色图像由R、G、B三个分量组成,而灰度图像显然只有亮度值一个属性。因此,想要是彩色图像灰度化,我们需要使用某种变换将其联系起来。这里采用的是比较常用的,并且效果还不错的一种转换关系:
这是根据人眼对绿色的敏感度最高,而对蓝色的敏感度最低的出来的,下面是转换的效果图。
第 34 页 共 45 页
中北大学2013届毕业设计说明书
图 五-1 转换前的彩色car 图 五-2转换后的灰度car
其实这个功能的实现很简单,只需要将一幅彩色图片的每一个像素都读出来,然后按上式进行运算,即可得到一幅灰度图。
5.2.2 灰度图的直方图均衡化增强
灰度图像的增强其实是比较简单的,而其中的直方图均衡化应该算是一种比较复杂的灰度变换了。直方图均衡 化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础 的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值, 其灰度变换函数T()为:
式中式中
;
。
是第j级灰度值的概率,是图像中第j级灰度的像素总数,l是
图像中灰度级的总数目,n是图像中的像素总数[18]。对变换后的S值取最靠近的一个灰度级的值,建立灰度级 变换表,将原图像变换为直方图均衡的图像。下面是实现图像直方图均衡化的效果图:
图 五-3 previous 图 五-4 enhanced
5.2.3 图像二值化
与图像灰度化的道理一样,只不过这种处理只保留两种灰度级[19]:
第 35 页 共 45 页
中北大学2013届毕业设计说明书
图 五-5 原图 图 五-6 二值化后
5.2.4 边缘检测
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类[20]。基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,下图为拉普拉斯算子[21]的效果图。
图 五-7 原图像 图 五-8检测结果
第六章 调试与维护
第 36 页 共 45 页