您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > DSP图像处理算法的实现-I
DSPDSP图像处理算法的实现图像处理算法的实现--II答辩人:董小静答辩人:董小静学号:学号:0414001204140012系:系:20042004级电子工程系级电子工程系指导老师:杨涛指导老师:杨涛背景、目的、意义背景、目的、意义••随着网络和通信技术的发展,数字图像处理与分析技术已随着网络和通信技术的发展,数字图像处理与分析技术已经在科学研究、工农业生产、军事技术、医疗卫生、教育经在科学研究、工农业生产、军事技术、医疗卫生、教育等许多领域得到了广泛运用,并产生了巨大的经济效益和等许多领域得到了广泛运用,并产生了巨大的经济效益和社会效益,对推动社会发展和改善人们生活水平都起到了社会效益,对推动社会发展和改善人们生活水平都起到了重要的作用。重要的作用。••DSPDSP技术作为数字化技术的基石,已经、正在、并且还将技术作为数字化技术的基石,已经、正在、并且还将在数字化中扮演一个不可或缺的角色。在数字化中扮演一个不可或缺的角色。DSPDSP的核心是算法的核心是算法与实现,越来越多的人正在认识、熟悉和使用它。依托于与实现,越来越多的人正在认识、熟悉和使用它。依托于DSPDSP硬件平台来实现数字图像处理,具有极高的信号处理硬件平台来实现数字图像处理,具有极高的信号处理速度,因此具有极大的优越性。速度,因此具有极大的优越性。结构框架结构框架••将将DSPDSP技术应用于数字图像处理这一课题,由技术应用于数字图像处理这一课题,由CC小组和小组和DSPDSP小组紧密配合来共同完成。具体任务就是按照用户给出的小组紧密配合来共同完成。具体任务就是按照用户给出的图像处理要求,在图像处理要求,在DSPDSP平台上,用平台上,用CC语言代码编写算法来语言代码编写算法来实现对原始图像的处理,并且要编写一个集成的检测环境实现对原始图像的处理,并且要编写一个集成的检测环境来验证能否满足用户要求。来验证能否满足用户要求。••该图中方框所示即为我们该图中方框所示即为我们DSPDSP小组所要完成的任务:依托小组所要完成的任务:依托DSPDSP平台,用标准平台,用标准CC语言编写、优化图像处理算法,使该语言编写、优化图像处理算法,使该算法能满足用户对图像的处理要求,比如边沿检测、去除算法能满足用户对图像的处理要求,比如边沿检测、去除噪声、图像平滑等。噪声、图像平滑等。主要内容主要内容••数字图像处理的相关概念数字图像处理的相关概念••通用图像处理方法的实现通用图像处理方法的实现••CC代码优化代码优化••检测并分析检测并分析DSPDSP图像处理算法图像处理算法图像处理的相关概念图像处理的相关概念••数字图像处理(数字图像处理(DigitalImageProcessingDigitalImageProcessing)又称为计算机)又称为计算机图像处理,它是指利用计算机和其它高速、大规模集成数图像处理,它是指利用计算机和其它高速、大规模集成数字硬件,对从图像信息转换来的数字电信号进行某些数字字硬件,对从图像信息转换来的数字电信号进行某些数字运算或处理,以期提高图像的质量或达到人们所预想的结运算或处理,以期提高图像的质量或达到人们所预想的结果。果。••图像分析主要是对图像中感兴趣的目标进行检测和测量,图像分析主要是对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述,分为特征提取、符号描述、景物从而建立对图像的描述,分为特征提取、符号描述、景物匹配和识别等几个部分。匹配和识别等几个部分。••二值图像也叫黑白图像,就是图像的像素只存在二值图像也叫黑白图像,就是图像的像素只存在00,,11两个两个值。一个二值图像是纯黑白的,每一个像素值将取值。一个二值图像是纯黑白的,每一个像素值将取00或或11中中的一个值,通常的一个值,通常00表示黑,表示黑,11表示白。表示白。••灰度图像是指只含亮度信息,不含色彩信息的图像,就像灰度图像是指只含亮度信息,不含色彩信息的图像,就像我们平时看到的黑白照片,亮度由暗到明,变化是连续的。我们平时看到的黑白照片,亮度由暗到明,变化是连续的。通用图像处理方法的实现通用图像处理方法的实现––卷积滤波卷积滤波••卷积是一种加权求和的线形运算,广泛应卷积是一种加权求和的线形运算,广泛应用于图像滤波、图像处理中,常见的用于图像滤波、图像处理中,常见的MaskMask运算都是卷积。运算都是卷积。(,)(,)(,)mnHijFmnGimjn+∞+∞=−∞=−∞=−−∑∑通用图像处理方法的实现通用图像处理方法的实现--中值滤波中值滤波••中值滤波是一种非线性滤中值滤波是一种非线性滤波,对干扰脉冲和点状噪波,对干扰脉冲和点状噪声有良好的抑制作用,同声有良好的抑制作用,同时可以较好地保持图像边时可以较好地保持图像边沿特征。沿特征。••中值滤波是将领域中的像中值滤波是将领域中的像素按灰度级排序,取其中素按灰度级排序,取其中间位置所在的值为输出像间位置所在的值为输出像素。对于同值像素,连续素。对于同值像素,连续排列。排列。••()[]nxxxMedianyxg,,,,21…=CC程序优化程序优化--一般一般CC优化优化••x=w%8;x=w%8;••y=y=pow(xpow(x,,2.0);2.0);••z=y*33;z=y*33;••for(i=0;ifor(i=0;iMAX;iMAX;i++)++){{••h=14*i;h=14*i;••printf(%dprintf(%d,,h);h);••}}••x=w&7;x=w&7;/*/*位操作比求余运算快位操作比求余运算快**//••y=x*x;y=x*x;/*/*乘法比平方运算快乘法比平方运算快**//••z=(y5)+y;z=(y5)+y;/*/*位移乘法比乘法快位移乘法比乘法快**//••for(i=0;iMAX;i++)for(i=0;iMAX;i++){{••h+=14;h+=14;/*/*加法比乘法快加法比乘法快**//printf(%dprintf(%d,,h);h);••}}CC代码优化代码优化--循环打开循环打开--IIintinti,sizei,size;;size=inputsize=input--width*inputwidth*input--heightheight--1;1;for(i=0;isize;i++)for(i=0;isize;i++){{outputoutput--pData[ipData[i]=input]=input--pData[ipData[i]]threshold?255:inputthreshold?255:input--pData[ipData[i];];}}该程序是一个简单的图像处理中的阈值程序,该程序是一个简单的图像处理中的阈值程序,sizesize为为88位无位无符号数输入图像的尺寸,当输入图像单个像素中的灰度值符号数输入图像的尺寸,当输入图像单个像素中的灰度值大于大于255255时,灰度值被截断为时,灰度值被截断为255255。。阈值程序阈值程序CC代码优化代码优化--循环打开循环打开--IIII••intinti,j,sizei,j,size;;size=inputsize=input--width*inputwidth*input--heightheight--1;1;if(0=size%2)if(0=size%2){{for(i=0;isize;i+=2)for(i=0;isize;i+=2){{outputoutput--pData[ipData[i]=input]=input--pData[ipData[i]threshold?255:input]threshold?255:input--pData[ipData[i];];j=i+1;j=i+1;outputoutput--pData[jpData[j]=input]=input--pData[jpData[j]threshold?255:input]threshold?255:input--pData[jpData[j];];}}}}elseelse{{sizesize--=1=1for(i=0;isize;i+=2)for(i=0;isize;i+=2){{outputoutput--pData[ipData[i]=input]=input--pData[ipData[i]threshold?255:input]threshold?255:input--pData[ipData[i];];j=i+1;j=i+1;outputoutput--pData[jpData[j]=input]=input--pData[jpData[j]threshold?255:input]threshold?255:input--pData[jpData[j];];}}}}••显然,优化之后,代码变得冗长,但是运行速度将近提高了一倍,这是以牺显然,优化之后,代码变得冗长,但是运行速度将近提高了一倍,这是以牺牲存储空间为代价而得到缩短运行时间的。假设输入图像为常见的牲存储空间为代价而得到缩短运行时间的。假设输入图像为常见的88位无符号位无符号数数480X640480X640,那么原程序中,那么原程序中forfor循环内大约要运行循环内大约要运行30,720030,7200次,优化之后的次,优化之后的程序只要运行程序只要运行15,360015,3600次。次。CC代码优化代码优化--基于基于TMS320C6000TMS320C6000系列系列••第一个阶段:我们根据需要实第一个阶段:我们根据需要实现的功能来编写现的功能来编写CC语言程序,这语言程序,这时的代码和硬件平台是独立时的代码和硬件平台是独立的,可以进行一些基本的的,可以进行一些基本的CC优优化,然后使用化,然后使用C6000C6000代码剖析代码剖析工具,确定工具,确定CC代码中可能存在代码中可能存在的低效率段,为进一步改进代的低效率段,为进一步改进代码性能,进入下一阶段。码性能,进入下一阶段。••第二个阶段:我们根第二个阶段:我们根TI,C6000TI,C6000平台一些基本的结构特点,使平台一些基本的结构特点,使用特定的优化方法,改进用特定的优化方法,改进CC代代码。这些方法包括使用编译器码。这些方法包括使用编译器选项、代码转换字访问、软件选项、代码转换字访问、软件流水和循环展开等。如果代码流水和循环展开等。如果代码仍不能达到所期望的效率,则仍不能达到所期望的效率,则进入第三个阶段。进入第三个阶段。••第三个阶段:从第三个阶段:从CC代码中抽出代码中抽出对运行时间影响最大的代码,对运行时间影响最大的代码,用线性汇编改写这段代码,用用线性汇编改写这段代码,用户能使用汇编优化器优化该代户能使用汇编优化器优化该代码。码。检测并分析数字图像处理算法检测并分析数字图像处理算法--边界处理边界处理••对于卷积的模板对于卷积的模板MASKMASK而言,它只能在图像的内部范围内而言,它只能在图像的内部范围内平移,但我们通常使用的都是平移,但我们通常使用的都是3X33X3或者或者5X55X5的模板的模板MASKMASK,所以就产生一个问题,图像的边沿无法通过卷积,所以就产生一个问题,图像的边沿无法通过卷积来处理,这就引入了图像的边沿处理问题。来处理,这就引入了图像的边沿处理问题。MASKMASK为为3X33X3的图像卷积滤波的图像卷积滤波--II••卷积数学公式为:卷积数学公式为:••MaskMask选取为:选取为:注:(选取思考)因输入图像注:(选取思考)因输入图像为完全对称图像,所以取为完全对称图像,所以取maskmask时故意取为非对称的,个人觉得时故意取为非对称的,个人觉得这样能更好的验证程序的健全性。这样能更好的验证程序的健全性。output(k,q)=∑∑==++0202),(*),(jijimaskqjkiinp
本文标题:DSP图像处理算法的实现-I
链接地址:https://www.777doc.com/doc-4333427 .html