一、实验目的
学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。
二、实验原理
图像二值化
图像的二值化处理就是将图像上的点的灰度置为 0 或 255,也就是将整个图像呈现出明显的黑白效果。即将 256 个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。
为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为 255 表示,否则这些像素点被排除在物体区域以外,灰度值为 0,表示背景或者例外的物体区域。如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用阈值法就可以得到比较的分割效果。如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用阈值选取技术来分割该图像。动态调节阈值实现图像的二值化可动态观察其分割图像的具体结果。
常用的二值化方法有3种,第一种方法是取阈值为128(相当于0~255的中数(0+255)/2=128),让灰度值小于等于128的变为0(黑色),灰度值大于128的变为255(白色)。
优点:计算量小且速度快。
缺点: 因为这个阈值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阈值,效果肯定是不好的。
第二种方法是计算像素点矩阵中的所有像素点的灰度值的平均值avg(像素点1灰度值+...+像素点n灰度值)/ n = 像素点平均值avg,然后让每一个像素点与avg一 一比较,小于等于avg的像素点就为0(黑色),大于avg的 像素点为255(白色)。
第三种方法是使用直方图方法(也叫双峰法)来寻找二值化阈值,直方图是图像的重要特质。直方图方法认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低谷处就是阈值所在。取到阀值之后再一一比较就可以了。
程序流程
程序流程设计中首先读取工程目录下的BMP图像,接着进行二值化处理,最后保存图像。
三、操作现象
实验设备
本实验所需硬件为实验板、仿真器、LCD和电源。
先来了解一下DSP的开发流程,开发过程中,首先选择CCS的工作区,接着导入、编译工程,完成软件开发后进行硬件连接,再配置仿真器文件,加载GEL文件,最后将CCS连接实验箱,加载并运行程序。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。
可以通过 CCS 的图像显示窗口查看处理前后的图片对比。
点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。
再次点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示二值化后的图片。
在 Properties 属性可看到out.txt 文件的设置参数。
同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。