您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 《基于DSP的图像处理》-dsp课程设计要点
《基于DSP的图像处理》DSP课程设计报告学号:班级:姓名:同组姓名:指导教师:2012年9月13日河海大学计算机与信息学院——DSP课程设计报告目录1课程设计目的………………………………………………12课程设计题目背景描述和要求……………………………13课程设计报告内容…………………………………………14总结…………………………………………………………45参考文献……………………………………………………46附录…………………………………………………………5河海大学计算机与信息学院——DSP课程设计报告11.课程设计目的利用TMS320C54X实验板实现以下功能:1、求图像的平均灰度值;2、利用四个LED小灯进行指示四个等级的灰度值;3、根据图像灰度等级对图像进行不同的变换(水平翻转、竖直翻转等);4、对图像进行二值化处理,包括全局二值化和局部二值化两种处理方式;5、对图像进行反色处理。2.课程设计题目背景描述和要求图像处理主要是指对原始图像进行加工,使其具有更好的视觉效果或满足某些特定场合的应用要求。由于图像具有信息量大、某些场合下对实时性要求较高的特点,所以对处理芯片的运算速度有较高要求。DSP芯片具有运算速度快,数据吞吐率高等优点,故在图像处理中得到广泛应用。本课题利用TMS320C54X系列的DSP芯片进行图像处理,实现对图像的读入、分析、翻转、二值化及反色等处理。3.课程设计报告内容3.1图像的读入及分析数字图像处理(DigitalImageProcessing)又称为计算机图像处理,它是指利用计算机和其它高速、大规模集成数字硬件,对从图像信息转换来的数字电信号进行某些数字运算或处理,以期提高图像的质量或达到人们所预想的结果。原始图像DSP硬件平台图像处理算法输出用户所需图像河海大学计算机与信息学院——DSP课程设计报告2数字图像处理中常将图像像素点的灰度分为256个等级,其中0为黑色,255为白色,0到255之间的等级灰度逐渐减小。图像是由若干像素组成,每个像素都有确定的灰度值。所以一幅图像,可以用每一个像素点的位置及其灰度值来描述。以此为依据,对于二维图像,我们采用了一个二维数组,每个数组元素存储一个像素点的信息,数组元素标号可以表示像素点的横纵坐标,数组元素的值就为像素点的灰度值。通过这种方法,我们就可以将整张图像的信息读入DSP存储空间中。图像读入后,根据每一个像素点的灰度值可以计算出整张图像的平均灰度值。根据这一平均值我们将图像分为四个等级:0~63为0级,64~127为1级,128~191为2级,192~255为3级。图像分级完成后,结果通过实验板上LP0~LP4四个LED小灯进行指示,每个等级对应一个小灯,某一个灯亮即表示图像平均灰度处于该级。3.2图像的二值化处理3.2.1二值化处理一幅图像包括目标物体、背景和噪声。目标物体和背景等在灰度值上有明显差异。因此,为了从多值的数字图像中直接提取目标物体,常设定一灰度阈值T,将图像分为两个部分,灰度大于T的像素群及灰度小于T的像素群。上述就是二值化处理的方法。本课设中设计了两种二值化方式:全局二值化,局部二值化。3.2.2全局二值化根据确定的二值化阈值T,我们对以读入的图像进行处理,对于图像中所有像素点,灰度值大于T的,将其灰度设为255,;灰度值小于T的,将其灰度值设为0。这样实现了图像的全局二值化。全局二值化为这张图像设定了统一的二值化阈值,但实际图像的各个部分平均河海大学计算机与信息学院——DSP课程设计报告3灰度状况并不统一。因此全局二值化在表现图像细节方面存在缺陷。3.2.3局部二值化利用3.1中介绍的灰度分级,利用已经得到的图像整体的灰度等级,为每级的图像设定一个二值化阈值T。0级的灰度在0~63之间,阈值T设为32;1级的灰度在64~127之间,阈值T设为96;2级的灰度在128~191之间,阈T设为160;3级灰度在192~255之间,阈值T设为224。该方法首先将图像划分为若干子集,在根据各子集的灰度状况各自设定二值化阈值。为简化处理过程,本课设中实际将图像划分为四个大小相等部分。再后逐一计算每个部分的平均灰度值,以此作为二值化阈值。随后根据各部分自身阈值,分别进行二值化处理。最后再将处理后的各部分进行整合,得到处理后的图像。以上方法相对于全局二值化有一定改善,但仍有缺陷。它将图像划分为若干小部分,各个部分阈值选取为自身的灰度平均值,因此,对各个部分而言,实质上还是选取了一个统一阈值。对此,可通过优化各部分阈值计算方法来进一步改善效果。优化的阈值计算方式应当更多地依赖于各部分图像自身的特征,以求所得的阈值能更好地反映该部分的情况。一种具体优化方法是:根据各部分像素灰度值的平均值E,像素之间的差平方P,像素之间的均方根值Q等各种局部特征,设定一个参数方程进行阈值的计算。例如:T=a*E+b*P+c*Q,其中a,b,c是自由参数。这样得出来的二值化图像就更能表现出二值化图像中的细节。3.3翻转和反色处理翻转也是图像处理中常用的处理方式。如3.1中所说,本课设中将图像读入后是用一个二维数组进行存储的,因此数字图像实质上可以看作是一个矩阵,图像的翻转也就可以当做是矩阵的翻转进行处理。河海大学计算机与信息学院——DSP课程设计报告4根据3.1中已得的图像分级情况,我们对图像进行了不同的翻转处理。0级和1级进行水平翻转,通过对二维数组同行元素进行左右调换实现;2计和3级进行竖直翻转,通过对二维数组同列元素进行上下调换实现。通过对二维数组元素的各种位置变换,均可以得到多种图像的翻转变换或局部翻转变换。反色处理则是对3.2中已得二值化处理后的图像进行的一种处理。二值化处理后的图像将目标对象和背景等进行了明确的区分,其中之一为白色,则另一个必为黑色。而其中具体是目标对象为白,背景为黑,还是这好相反,则是由图像本身特性决定的。假如我们期望以白色标记目标对象,而二值化结果却正好相反时,就可以采用反色处理。二值化处理后图像所有像素点均只有黑白两种颜色。将其中黑色的变为白色,也即灰度值从0变为255;同时白色变为黑色,也即灰度值从255变为0,便实现了图像的反色处理。4.总结通过本次课程设计,将课堂教学的知识应用于实践。在这个过程中,我们先对图像的知识进行基本的了解,并且将图像转化为数组进行存储,处理。我们还学习了ccs软件的基本应用,这对于我们以后的工作也是非常重要的。同时通过这次实践进一步提高了我们的c语言水平。最重要的是对我们思维的开拓,从开始的数组化图像到后来局部二值化的想法,通过向老师提问,网上查找资料等方式我们一步一步完善我们的课程设计,最终完成了我们的课设目的。另外,通过本次实践,我们也感受到了dsp技术的稳定性好,可重复性好,抗干扰能力强,数据压缩等特点。相信这项技术在以后有更大的发展空间。参考文献[1]戴明桢,周建江.TMS320C54xDSP[M].北京:北京航空航天大学出版社,2007.[2]郎崇林DSP及其在图像处理中的应用[J].科技情报开发与经济,2011,第26期[3]百度百科二值化河海大学计算机与信息学院——DSP课程设计报告5附录1、源程序1:#includemath.h#includestdio.hexternvoidleda();externvoidledb();externvoidledc();externvoidledd();#defineIMAGE_WIDTH64#defineIMAGE_HEIGTH64intlevel;voidaverage(int(*y)[64]){unsignedintai,aj;unsignedlongtemp=0;floataver;for(ai=0;ai=63;ai++)for(aj=0;aj=63;aj++){temp+=*(*(y+ai)+aj);}//level=(int)(temp/(64l*64l*64l));aver=temp/(64u*64u);level=(int)(aver/64);}voidleddis(){switch(level){case0:leda();break;case1:ledb();break;case2:ledc();break;case3:ledd();break;default:break;}}voidconvert(int(*y)[64])河海大学计算机与信息学院——DSP课程设计报告6{intci,cj,tempc,c=64/2;switch(level){case0:{}case1://水平翻转for(ci=0;ci64;ci++){for(cj=0;cjc;cj++){tempc=y[ci][cj];y[ci][cj]=y[ci][63-cj];y[ci][63-cj]=tempc;}}break;case2:{}case3://竖直翻转for(ci=0;cic;ci++){for(cj=0;cj64;cj++){tempc=y[ci][cj];y[ci][cj]=y[63-ci][cj];y[63-ci][cj]=tempc;}}break;default:break;}}main(){FILE*fi;inti,j;inty[IMAGE_HEIGTH][IMAGE_WIDTH];unsignedcharid[64];intk[4]={32,96,160,224};/*kisThresholdValue,以各段均值为阈值*/fi=fopen(D:\\set41.bmp,rb);河海大学计算机与信息学院——DSP课程设计报告7for(i=0;i=16;i++){fread((char*)id,sizeof(char),IMAGE_WIDTH,fi);}//fread((char*)id,sizeof(char),54,fi);for(i=0;iIMAGE_HEIGTH;i++){fread((char*)id,sizeof(char),IMAGE_WIDTH,fi);for(j=0;jIMAGE_WIDTH;j++){y[i][j]=id[j];}}fclose(fi);i=0;average(y);leddis();for(i=0;iIMAGE_HEIGTH;i++){for(j=0;jIMAGE_WIDTH;j++){y[i][j]=(255-y[i][j]);}}i=0;for(i=0;iIMAGE_HEIGTH;i++){for(j=0;jIMAGE_WIDTH;j++){y[i][j]=255*((255-y[i][j])/k[level]);}}i=0;convert(y);i=0;河海大学计算机与信息学院——DSP课程设计报告8}2、LED灯指示子程序:.mmregs.global_leda.global_ledb.global_ledc.global_ledd.text_leda:stm#01h,ar1;definetheaddressportw*ar1,01hnopnopret_ledb:stm#02h,ar1;definetheaddressportw*ar1,01hnopnopret_ledc:stm#04h,ar1;definetheaddressportw*ar1,01hnopnopret_ledd:stm#08h,ar1;definetheaddressportw*ar1,01hnopnopret3、局部二值化处理原程序:#includemath.h#includestdio.h河海大学计算机与信息学院——DSP课程设计报告9inty[64][64];intave(int(*t)[32]){unsignedintai,aj;unsignedlongtemp=0;floataver;for(ai=0;ai=31;ai++)for(aj=0;aj=31;aj++){temp+=*(*(t+ai)+aj);}aver=temp/(32u*32u);returnaver;//以各
本文标题:《基于DSP的图像处理》-dsp课程设计要点
链接地址:https://www.777doc.com/doc-4124713 .html