DSP图像处理算法的实现-I
DSP图像处理算法的实现-I答辩人:董小静学号:04140012系:2004级电子工程系指导老师:杨涛
DSP图像处理算法的实现-I
背景、目的、意义 随着网络和通信技术的发展,数字图像处理与分析技术已经在科学研究、工农业生产、军事技术、医疗卫生、教育等许多领域得到了广泛运用,并产生了巨大的经济效益和社会效益,对推动社会发展和改善人们生活水平都起到了重要的作用。 DSP技术作为数字化技术的基石,已经、正在、并且还将在数字化中扮演一个不可或缺的角色。DSP的核心是算法与实现,越来越多的人正在认识、熟悉和使用它。依托于 DSP硬件平台来实现数字图像处理,具有极高的信号处理速度,因此具有极大的优越性。
DSP图像处理算法的实现-I
结构框架
将DSP技术应用于数字图像处理这一课题,由C小组和DSP小组紧密配合来共同完成。具体任务就是按照用户给出的图像处理要求,在DSP平台上,用C语言代码编写算法来实现对原始图像的处理,并且要编写一个集成的检测环境来验证能否满足用户要求。该图中方框所示即为我们DSP小组所要完成的任务:依托 DSP平台,用标准C语言编写、优化图像处理算法,使该算法能满足用户对图像的处理要求,比如边沿检测、去除噪声、图像平滑等。
DSP图像处理算法的实现-I
主要内容 数字图像处理的相关概念 通用图像处理方法的实现 C代码优化 检测并分析DSP图像处理算法
DSP图像处理算法的实现-I
图像处理的相关概念 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指利用计算机和其它高速、大规模集成数字硬件,对从图像信息转换来的数字电信号进行某些数字运算或处理,以期提高图像的质量或达到人们所预想的结果。图像分析主要是对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述,分为特征提取、符号描述、景物匹配和识别等几个部分。二值图像也叫黑白图像,就是图像的像素只存在0,1两个值。一个二值图像是纯黑白的,每一个像素值将取0或1中的一个值,通常0表示黑,1表示白。灰度图像是指只含亮度信息,不含色彩信息的图像,就像我们平时看到的黑白照片,亮度由暗到明,变化是连续的。
DSP图像处理算法的实现-I
通用图像处理方法的实现–卷积滤波
卷积是一种加权求和的线形运算,广泛应H (i, j )=
用于图像滤波、图像处理中,常见的Mask运算都是卷积。m= ∞
∑
+∞
n= ∞
∑
+∞
F ( m, n )G (i m, j n )
DSP图像处理算法的实现-I
通用图像处理方法的实现-中值滤波 中值滤波是一种非线性滤波,对干扰脉冲和点状噪声有良好的抑制作用,同时可以较好地保持图像边沿特征。中值滤波是将领域中的像素按灰度级排序
,取其中间位置所在的值为输出像素。对于同值像素,连续排列。
g ( x, y )= Median[x 1, x 2,…, x n]
DSP图像处理算法的实现-I
C程序优化-一般C优化 x= w% 8; y= pow(x, 2.0); z= y * 33; for (i= 0;i< MAX;i++){ h= 14 * i; printf("%d", h);}
x= w& 7; /*位操作比求余运算快 */ y= x * x;/*乘法比平方运算快 */ z= (y<< 5)+ y;/*位移乘法比乘法快 */ for (i= 0; i< MAX; i++){ h+= 14;/*加法比乘法快 */ printf("%d", h);}
DSP图像处理算法的实现-I
C代码优化-循环打开-Iint i,size; size= input->width*input->height-1; for (i= 0; i< size; i++ ){ output->pData[i]= input->pData[i]> threshold? 255: input->pData[i];}
该程序是一个简单的图像处理中的阈值程序,size为8位无符号数输入图像的尺寸,当输入图像单个像素中的灰度值大于255时,灰度值被截断为255。阈值程序
DSP图像处理算法的实现-I
int i,j,size; size= input->width*input->height-1; if (0=size%2){ for (i= 0; i< size; i+=2 ){ output->pData[i]= input->pData[i]> threshold? 255: input->pData[i]; j=i+1; output->pData[j]= input->pData[j]> threshold? 255: input->pData[j];}} else{ size -=1 for (i= 0; i< size; i+=2 ){ output->pData[i]= input->pData[i]> threshold? 255: input->pData[i]; j=i+1; output->pData[j]= input->pData[j]> threshold? 255: input->pData[j];}}
C代码优化-循环打开-II
显然,优化之后,代码变得冗长,但是运行速度将近提高了一倍,这是以牺
牲存储空间为代价而得到缩短运行时间的。假设输入图像为常见的8位无符号数480 X 640,那么原程序中for循环内大约要运行30,7200次,优化之后的程序只要运行15,3600次。
DSP图像处理算法的实现-I
C代码优化-基于TMS320C6000系列 第一个阶段:我们根据需要实现的功能来编写C语言程序,这时的代码和硬件平台是独立的,可以进行一些基本的C优化,然后使用C6000代码剖析工具,确定C代码中可能存在的低效率段,为进一步改进代码性能,进入下一阶段。第二个阶段:我们根TI,C6000平台一些基本的结构特点,使用特定的优化方法,改进C代码。这些方法包括使用编译器选项、代码转换字访问、软件流水和循环展开等。如果代码仍不能达到所期望的效率,则进入第三个阶段。第三个阶段:从C代码中抽出对运行时间影响最大的代码,用线性 …… 此处隐藏:1467字,全部文档内容请下载后查看。喜欢就下载吧 ……