《基于DSP的图像处理》-dsp课程设计要点_第1页
《基于DSP的图像处理》-dsp课程设计要点_第2页
《基于DSP的图像处理》-dsp课程设计要点_第3页
《基于DSP的图像处理》-dsp课程设计要点_第4页
《基于DSP的图像处理》-dsp课程设计要点_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于DSP的图像处理DSP课程设计报告学 号: 班 级: 姓 名: 同组姓名: 指导教师: 2012年9月13日目 录1课程设计目的12课程设计题目背景描述和要求13课程设计报告内容14总结45参考文献46附录51.课程设计目的利用TMS320C54X实验板实现以下功能:1、求图像的平均灰度值;2、利用四个LED小灯进行指示四个等级的灰度值;3、根据图像灰度等级对图像进行不同的变换(水平翻转、竖直翻转等);4、对图像进行二值化处理,包括全局二值化和局部二值化两种处理方式;5、对图像进行反色处理。2.课程设计题目背景描述和要求图像处理主要是指对原始图像进行加工,使其具有更好的视觉效果或满足某些特

2、定场合的应用要求。由于图像具有信息量大、某些场合下对实时性要求较高的特点,所以对处理芯片的运算速度有较高要求。DSP芯片具有运算速度快,数据吞吐率高等优点,故在图像处理中得到广泛应用。本课题利用TMS320C54X系列的DSP芯片进行图像处理,实现对图像的读入、分析、翻转、二值化及反色等处理。3.课程设计报告内容3.1 图像的读入及分析数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指利用计算机和其它高速、大规模集成数字硬件,对从图像信息转换来的数字电信号进行某些数字运算或处理,以期提高图像的质量或达到人们所预想的结果。输出用户所需图像DSP硬件平台原

3、始图像图像处理算法数字图像处理中常将图像像素点的灰度分为256个等级,其中0为黑色,255为白色,0到255之间的等级灰度逐渐减小。图像是由若干像素组成,每个像素都有确定的灰度值。所以一幅图像,可以用每一个像素点的位置及其灰度值来描述。以此为依据,对于二维图像,我们采用了一个二维数组,每个数组元素存储一个像素点的信息,数组元素标号可以表示像素点的横纵坐标,数组元素的值就为像素点的灰度值。通过这种方法,我们就可以将整张图像的信息读入DSP存储空间中。图像读入后,根据每一个像素点的灰度值可以计算出整张图像的平均灰度值。根据这一平均值我们将图像分为四个等级:063为0级,64127为1级,12819

4、1为2级,192255为3级。图像分级完成后,结果通过实验板上LP0LP4四个LED小灯进行指示,每个等级对应一个小灯,某一个灯亮即表示图像平均灰度处于该级。3.2 图像的二值化处理3.2.1二值化处理一幅图像包括目标物体、背景和噪声。目标物体和背景等在灰度值上有明显差异。因此,为了从多值的数字图像中直接提取目标物体,常设定一灰度阈值T,将图像分为两个部分,灰度大于T的像素群及灰度小于T的像素群。上述就是二值化处理的方法。本课设中设计了两种二值化方式:全局二值化,局部二值化。3.2.2全局二值化根据确定的二值化阈值T,我们对以读入的图像进行处理,对于图像中所有像素点,灰度值大于T的,将其灰度设

5、为255,;灰度值小于T的,将其灰度值设为0。这样实现了图像的全局二值化。全局二值化为这张图像设定了统一的二值化阈值,但实际图像的各个部分平均灰度状况并不统一。因此全局二值化在表现图像细节方面存在缺陷。3.2.3局部二值化利用3.1中介绍的灰度分级,利用已经得到的图像整体的灰度等级,为每级的图像设定一个二值化阈值T。0级的灰度在063之间,阈值T设为32;1级的灰度在64127之间,阈值T设为96;2级的灰度在128191之间,阈T设为160;3级灰度在192255之间,阈值T设为224。该方法首先将图像划分为若干子集,在根据各子集的灰度状况各自设定二值化阈值。为简化处理过程,本课设中实际将图

6、像划分为四个大小相等部分。再后逐一计算每个部分的平均灰度值,以此作为二值化阈值。随后根据各部分自身阈值,分别进行二值化处理。最后再将处理后的各部分进行整合,得到处理后的图像。以上方法相对于全局二值化有一定改善,但仍有缺陷。它将图像划分为若干小部分,各个部分阈值选取为自身的灰度平均值,因此,对各个部分而言,实质上还是选取了一个统一阈值。对此,可通过优化各部分阈值计算方法来进一步改善效果。优化的阈值计算方式应当更多地依赖于各部分图像自身的特征,以求所得的阈值能更好地反映该部分的情况。一种具体优化方法是:根据各部分像素灰度值的平均值E,像素之间的差平方P,像素之间的均方根值Q等各种局部特征,设定一个

7、参数方程进行阈值的计算。例如:T=a*E+b*P+c*Q,其中a,b,c是自由参数。这样得出来的二值化图像就更能表现出二值化图像中的细节。3.3 翻转和反色处理翻转也是图像处理中常用的处理方式。如3.1中所说,本课设中将图像读入后是用一个二维数组进行存储的,因此数字图像实质上可以看作是一个矩阵,图像的翻转也就可以当做是矩阵的翻转进行处理。根据3.1中已得的图像分级情况,我们对图像进行了不同的翻转处理。0级和1级进行水平翻转,通过对二维数组同行元素进行左右调换实现;2计和3级进行竖直翻转,通过对二维数组同列元素进行上下调换实现。通过对二维数组元素的各种位置变换,均可以得到多种图像的翻转变换或局部

8、翻转变换。反色处理则是对3.2中已得二值化处理后的图像进行的一种处理。二值化处理后的图像将目标对象和背景等进行了明确的区分,其中之一为白色,则另一个必为黑色。而其中具体是目标对象为白,背景为黑,还是这好相反,则是由图像本身特性决定的。假如我们期望以白色标记目标对象,而二值化结果却正好相反时,就可以采用反色处理。二值化处理后图像所有像素点均只有黑白两种颜色。将其中黑色的变为白色,也即灰度值从0变为255;同时白色变为黑色,也即灰度值从255变为0,便实现了图像的反色处理。4.总结通过本次课程设计,将课堂教学的知识应用于实践。在这个过程中,我们先对图像的知识进行基本的了解,并且将图像转化为数组进行

9、存储,处理。我们还学习了ccs软件的基本应用,这对于我们以后的工作也是非常重要的。同时通过这次实践进一步提高了我们的c语言水平。最重要的是对我们思维的开拓,从开始的数组化图像到后来局部二值化的想法,通过向老师提问,网上查找资料等方式我们一步一步完善我们的课程设计,最终完成了我们的课设目的。另外,通过本次实践,我们也感受到了dsp技术的稳定性好,可重复性好,抗干扰能力强,数据压缩等特点。相信这项技术在以后有更大的发展空间。参考文献1 戴明桢,周建江. TMS320C54x DSPM. 北京:北京航空航天大学出版社,2007.2 郎崇林 DSP及其在图像处理中的应用J. 科技情报开发与经济, 20

10、11,第26期3 百度百科 二值化 附录1、 源程序1:#include math.h#include stdio.hextern void leda();extern void ledb();extern void ledc();extern void ledd();#define IMAGE_WIDTH 64#define IMAGE_HEIGTH 64int level;void average(int (*y)64) unsigned int ai,aj; unsigned long temp=0; float aver; for(ai=0;ai=63;ai+) for(aj=0;aj

11、=63;aj+) temp+=*(*(y+ai)+aj); /level=(int)(temp/(64l*64l*64l); aver=temp/(64u*64u); level=(int)(aver/64);void leddis() switch(level) case 0:leda();break; case 1:ledb();break; case 2:ledc();break; case 3:ledd();break; default:break; void convert(int (*y)64) int ci,cj,tempc,c=64/2; switch(level) case

12、0: case 1: /水平翻转 for (ci=0; ci64; ci+) for (cj=0; cjc; cj+) tempc=ycicj;ycicj=yci63-cj;yci63-cj=tempc; break; case 2: case 3: /竖直翻转 for (ci=0; cic; ci+) for (cj=0; cj64; cj+) tempc=ycicj;ycicj=y63-cicj;y63-cicj=tempc; break; default:break; main()FILE *fi;int i,j;int yIMAGE_HEIGTHIMAGE_WIDTH;unsigned

13、 char id64;int k4=32,96,160,224; /*k is Threshold Value,以各段均值为阈值*/ fi=fopen(D:set41.bmp,rb);for (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+)yij=idj

14、;fclose(fi);i=0; average(y); leddis(); for (i=0; iIMAGE_HEIGTH; i+)for (j=0; jIMAGE_WIDTH; j+)yij = (255-yij);i=0; for (i=0; iIMAGE_HEIGTH; i+)for (j=0; jIMAGE_WIDTH; j+)yij = 255*(255-yij)/klevel);i=0; convert(y);i=0;2、 LED灯指示子程序:.mmregs.global_leda.global_ledb.global_ledc.global_ledd.text_leda:stm

15、#01h,ar1 ;define the addressportw*ar1,01hnopnop ret _ledb:stm#02h,ar1 ;define the addressportw*ar1,01hnopnop ret _ledc:stm#04h,ar1 ;define the addressportw*ar1,01hnopnop ret _ledd:stm#08h,ar1 ;define the addressportw*ar1,01hnopnop ret3、 局部二值化处理原程序:#include math.h#include stdio.hint y6464;int ave(int

16、 (*t)32) unsigned int ai,aj; unsigned long temp=0; float aver; for(ai=0;ai=31;ai+) for(aj=0;aj=31;aj+) temp+=*(*(t+ai)+aj); aver=temp/(32u*32u); return aver; /以各区域平均值为二值化阈值void locate() int lex4,i,j; int x13232,x23232,x33232,x43232; for(i=0;i32;i+) for(j=0;j32;j+) x1ij=yij; x2ij=yij+32; x3ij=yi+32j;

17、 x4ij=yi+32j+32; lex0=ave(x1); lex1=ave(x2); lex2=ave(x3); lex3=ave(x4); i=0; for (i=0; i32; i+)for (j=0; j32; j+)x1ij = 255*(255-x1ij)/lex0);x2ij = 255*(255-x2ij)/lex1);x3ij = 255*(255-x3ij)/lex2);x4ij = 255*(255-x4ij)/lex3); for(i=0;i32;i+) for(j=0;j32;j+) yij=x1ij; yij+32=x2ij; yi+32j=x3ij; yi+32j+32=x4ij;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论