DSP实验四-图像平滑实验 联系客服

发布时间 : 星期日 文章DSP实验四-图像平滑实验更新完毕开始阅读b9181e6b11661ed9ad51f01dc281e53a580251c2

实验四:图像平滑实验

一、实验目的

1. 培养学生理解图像平滑的原理 2. 掌握图像处理的基本方法二、试验设备

1. PC 兼容机一台:操作系统为 Windows XP (Windows NT、Windows 98、Windows 2000), Windows 操作系统的内核如果是NT 的英安装相应的补丁程序( 如:Windows 2000 为Service Pack3 ,Windows XP 为 Service Pack1) ;

2. Code Composer Studio 3.3 软件开发环境; 3. 软件仿真可以不要实验箱。三、试验原理

? 邻域平均法图像平滑

假设待处理的图像为 f(x,y),处理后图像为 g(x,y),领域平均法图像平滑处理的数学表达可表示为:

式中 f(x,y) 为 N*N 的阵列,x , y =0,1,2,…,N -1,S 是以(x,y)点为中心的邻域的集合, M 为邻域 S 中的像素点数。

在具体平滑运算过程中,领域 S 的形状和大小根据图像特点来确定,一般取的形状是正方形、矩形及十字形等,如图所示,是 S 邻域取四点邻域和八点邻域的示例,并且S 的形状和大小可以在全图处理过程中始终保持不变,也可以根据图像的局部统计特性而变化, 点(x, y)一般位于 S 的中心。如S 为 3*3 邻域,点(x,y)位于 S 中心,则公式变为:

? 加权平均法图像平滑

加权平均法的基本思路是:对于同一尺寸的模板,可对不同位置的加权系数采用不同的数值。一般认为离对应模板中心像素近的像素应对滤波结果有较大贡献,所以接近模板中心的系数可较大,而模板边界附近的系数应较小。图像邻域加权平均就是用像素的某邻域内诸像素灰度的加权平均值来代替原像素的灰度值,从而达到消除噪声的干扰的目的。其数学计算式为:

其中 W(i, j, K, L)是邻域 Uij 内对应于像素(K L)的加权值,为了使加权平均后图像平均亮度不发生较大的变化,要求所有权值之和为 1,即:

如果邻域内各加权系数均相等时,即 ,则加权平均方法变成了邻

域平均法,也就是说,邻域平均法是加权平均法中的一种特例。

在实际应用中,为保证各模板系数均为整数以减少计算量,常取模板周边最小的系数为1 ,而取内部的系数成比例增加,中心系数最大。一种常用的加权平均方法是根据系数与模板 中 心 的 距 离 成 反 比 来 确 定 其 他 内 部 系 数 的 值 , 常 用 的 加 权 模 板 有 :

四、实验步骤

1. 设置 CCS 工作在软件仿真环境(Simulator) ,且启动CCS 。

2 打开 \\Lab4_ImgSmooth\\image642.pjt 工程,编译并运行程序( 要求:仿真阅读代码,按要求编写程序、调试程序、观察实验结果)。 3. 运行程序,按如下方法观察试验结果。五、实验结果

按如下方法观看试验结果:

(1) 编译、链接程序:执行菜单Project/Rebuild All,汇编结果在将汇编信息输出窗口中给出。编译后将在Debug 目录中产生一个 ImgSmooth.out 文件。

(2) 加载程序:执行File/Load Program,选择 ImgSmooth.out 并打开,即将可执行文件加载到DSP 软件仿真器 simulator 中,此时CCS 将自动打开一个反汇编窗口。

(3 )将图像的数据从 dat 文件读入到内存:执行 File/data/load ,将要进行颜色转换的图像数据从Data160x160.dat (说明:*.dat 格式,内部存放了某图像各像素的灰度值)文件中加载入到数据存储器,即在弹出的窗口中输入存储地址 IMG 与数据的长度,如下图所示。

(4) 运行程序:执行 Debug/Run 。为了便于观看试验前后的结果,可以在程序中设置断点,

采用单步执行的方法运行程序。

(5) 显示平滑前的噪声图像:执行View/Graph/Image,在弹出的对话框中选择颜色类型为

RGB,并输入RGB 彩色图像三个通道数据的地址,以及图像显示格式(显示几行、每行几像素)等内容,如图所示。这样,原始的噪声图像如图所示。

(6) 显示平滑后的图像:执行 View/Graph/Image,在弹出的对话框中选择颜色类型为RGB,

并输入灰度图像据的地址,以及图像显示格式(显示几行、每行几像素)等内容,如图 3 所示。如图所示,是采用“3*3 模板”进行邻域平均法得到的平滑图像。读者也可以自己编写子函数,实现其他的图像平滑算法,编译运行程序,以同样的方法观看不同方法所得到的平滑效果。

平滑前后对比:

六、作业与思考

1 、拓展编程:编写通常邻域平均图像平滑函数,即: void IMG_Smooth_R (

unsigned char *F, unsigned char *G, int cols, int rows, /* int R

/* 输入带有噪声的灰度图像

/* 输出的平滑后的灰度图像 图像的宽度与高度

/* 邻域半径 ( 设取奇数)

*/ */ */ */

)

2 、编程实现加权平均法图像平滑算法,分析对比实验结果和效果。

PS: Deadline:2018/10/29,本次作业占平时成绩 5% 答案:

/*======== 头文件引用===========*/ #include \