DSP实习报告模板.docx

上传人:牧羊曲112 文档编号:4884060 上传时间:2023-05-21 格式:DOCX 页数:17 大小:718.41KB
返回 下载 相关 举报
DSP实习报告模板.docx_第1页
第1页 / 共17页
DSP实习报告模板.docx_第2页
第2页 / 共17页
DSP实习报告模板.docx_第3页
第3页 / 共17页
DSP实习报告模板.docx_第4页
第4页 / 共17页
DSP实习报告模板.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《DSP实习报告模板.docx》由会员分享,可在线阅读,更多相关《DSP实习报告模板.docx(17页珍藏版)》请在三一办公上搜索。

1、DSP应用技术实习报告课程课题:基于DSP的键盘控制数字图像处理方式及LCD显示专业班级:电子信息科学与技术学生姓名:指导教师:邹修国李林徐友杨红兵完成时间:一、课程内容:掌握直方图统计的原理和程序设计 了解边缘检测的算法和用途 了解锐化的算法和用途 了解取反的算法和用途掌握直方图均衡化增强的原理和程序设计 了解液晶显示器的显示控制原理及编程方法 了解键盘的使用原理及编程方法二、设计功能及工作原理能够实现功能:/数字图像直方图统计/ 数字图像边缘检测(Sobel算子)/数字图像的锐化(LAPLACE算子)/数字图像的取反/数字图像直方图均衡化增强通过键盘的输入可以控制图像处理的方式,并且LCD

2、显示何种处理方式。工作原理: 灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表 示像素的灰度级别,纵坐标表示的是该灰度出现的频率。 边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,也包括方向的确定。大多 数使用基于方向导数掩模求卷积的方法。图像的锐化处理就是使模糊的图像变得更加清晰起来,拉普拉斯锐化法属于常用的一种 微分锐化方法。 求反处理的图像与原来的图像黑白颠倒,取得类似照片底片的效果。 直方图增强的方法就是压缩直方图中比例少的像素所占用的灰度范围,多出来的灰度空 间按照统计比例分配给直方图中比例高的像素使用。三、设计过程1. 各种功能工程的分别建立:/数

3、字图像直方图统计/ 数字图像边缘检测(Sobel算子)/数字图像的锐化(LAPLACE算子)/数字图像的取反/数字图像直方图均衡化增强/ 键盘输入/ 液晶显示器控制显示2. 将各个功能模块进行组合:1)打开键盘输入的工程文件,浏览key.c文件内容;2)打开数字图像直方图统计的工程文件,将Histo.c主函数内的处理部分的代码复制到 key.c文件的casel语句后;3)打开数字图像边缘检测的工程文件,将Image.c主函数内的处理不放入内的代码复制 到key.c文件的case2语句后;4)打开数字图像锐化的工程文件,将Image.c主函数内的处理不放入内的代码复制到 key.c文件的case

4、3语句后;5)打开数字图像取反的工程文件,将Image.c主函数内的处理不放入内的代码复制到 key.c文件的case4语句后;6)打开数字图像直方图均衡化增强的工程文件,将Histo.c主函数内的处理不放入内的 代码复制到key.c文件的case5语句后;7)内存空间的修改,打开cmd代码,做以下修改-w-stack 1000-heap 1000-sysstack 1000-l rts55x.lib以及 DARAM2: o=0x8100,l=0x300008)打开液晶显示的工程文件,利用字模显示工具分别对所需要显示的字进行字模显示, 得到扫描代码,对原有工程文件主函数进行修改,再对key,c

5、的主函数进行添加和修改。9)编译并下载程序10)打开观察窗口进行窗口设各项参数设置,分别打开三个,一个用于原图显示,一个用于直方图显示, 一个用于处理后图像显示。进行断点调试,观察图像变化,以及LCD显示。3.主PLL_Init(20);SDRAM_init();InitCTR();TurnOnLCD();/ 打开显示LCDCLS();/清除显示内存CTRLCDCMDR=LCDCMDSTARTLINE; / 设置显示起始行Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (;)CTRLCDCMDR=LCDCMDPAGE; / 设置操作页=0Delay

6、(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; / 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);dbScanCode=GetKey();dbScanCode&=0x0ff;if(dbScanCode=SCANCODE_9) break;switch(dbScanCode)case 1:CTRLR=0x1;CTRLR=0x40;for ( i=0;i50;i+ ) CTRLCDRCR=ledkey1i; /屏幕左侧第1至8行第i列赋值 port8002=0;/

7、 (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);I

8、nitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint

9、Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);break; case 2:CTRLR=0x2;CTRLR=0x40; for ( i=0;i50;i+ )CTRLCDRCR=ledkey2i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(

10、LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /Breakpoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Sobel(IMA

11、GEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Sobel(IMAGEWIDTH,IMAGE

12、HEIGHT);break;case 3:CTRLR=0x4;CTRLR=0x40;for ( i=0;i50;i+ )CTRLCDRCR=ledkey3i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAG

13、EWIDTH,IMAGEHEIGHT); /BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,I

14、MAGEHEIGHT);/BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPointLaplace(IMAGEWIDTH,IMAGEHEIGHT);break;case 4:CTRLR=0x0;CTRLR=0x48;for ( i=0;i50;i+ )CTRLCDRCR=ledkey4i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;

15、Delay(LCDDELAY);Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /Breakpoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Reverse(IMAGEWIDTH,IMAGEHE

16、IGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT);brea

17、k;case 5:CTRLR=0x0;CTRLR=0x50;for ( i=0;i50;i+ )CTRLCDRCR=ledkey5i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTarg

18、etImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHis

19、togram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,

20、IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO

21、3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPoi

22、nt Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);while(1);break;case 6:for ( i=0;i50;i+ )CTRLCDRCR=ledkey6i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设

23、置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);CTRLR=0x0;CTRLR=0x60;break;case 7:for ( i=0;i50;i+ )CTRLCDRCR=ledkey7i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);CTRLR=0x8;CTRLR=0x40;break;case 8:for ( i=0;i50;i+ )CTRLCDRCR=ledkey8

24、i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);CTRLR=0x10;CTRLR=0x40;break;Delay(16);CloseCTR();exit(0); void Histogram(unsigned char *pImage,int nWidth,int nHeight,float fHisto256) int i,j;unsigned int uWork;unsigned char *pWork;for ( i=0;i

25、256;i+ ) fHistoi=0.0f;pWork=pImage;for ( i=0;inHeight;i+ )for ( j=0;jnWidth;j+,pWork+ )uWork=(unsigned int)(*pWork);fHistouWork+;uWork=nWidth*nHeight;for ( i=0;i256;i+ )fHistoi/=uWork;fHistoi*=100; void Enhance(unsigned char *pImage,unsigned char *pImage1,int nWidth,int nHeight,float fHisto256,float

26、 fHisto1256) int i,j;unsigned int uWork;unsigned char *pWork,*pWork1;for ( i=0;i256;i+ )fHisto1i=fHistoi/100;for ( i=1;i256;i+ )fHisto1i+=fHisto1i-1;for ( i=0;i256;i+ )luti=fHisto1i*256;for ( i=0;i=256 )luti=255;pWork=pImage; pWork1=pImage1;for ( i=0;inHeight;i+ )for ( j=0;jnWidth;j+,pWork+,pWork1+

27、)(*pWork1)=lut(*pWork);字显示部分的修改代码unsigned char ledkey1050=0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00, /00xFC,0x00,0x20,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x84,0x00,0xFC ,0x00,0x84,0x00,0x00,0x00,0x4C,0x00,0x92,0x00,0x92,0x00,0x64,0x00,0x00,0x00,0x0 4,0x00,0x04,0x00,0xFC,0x00,0x04,0x00,0x04,0x

28、00,0x78,0x00,0x84,0x00,0x84,0x00,0x 78,0x00,0x00,0x00, /10x4C,0x00,0x92,0x00,0x92,0x00,0x64,0x00,0x00,0x00,0x78,0x00,0x84,0x00,0x84 ,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x6C,0x00,0x0 0,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0x00,0x00,0xFC,0x00,0x80,0x00,0x 80,0x00,

29、0x80,0x00, /20x00,0x00,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0xF8,0x00,0x2C ,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x0 0,0x00,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0xF8,0x00,0x2C,0x00,0x F8,0x00,0x00,0x00,0xF8,0x00,0x14,0x00,0x14,0x00,0x34

30、,0x00,0xC8,0x00,0x00,0x00,0xFC,0x00,0x94 ,0x00,0x94,0x00,0x84,0x00,0x00,0x00,0x7C,0x00,0x80,0x00,0x7C,0x00,0x00,0x00,0x0 0,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0xF8,0x00,0x14,0x00,0x14,0x00,0x 34,0x00,0xC8,0x00,0x00,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0xFC,0x00,0x08,0x00,0x10 ,0x00,

31、0x20,0x00,0xFC,0x00,0xFC,0x00,0x20,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x0 0,0x00,0xF8,0x00,0x2C,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,0x08,0x00,0x10,0x00,0x 20,0x00,0xFC,0x00,0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

32、00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x0

33、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

34、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00四、设计工程的仿真图形1. 数字图像直方图统计2.数字图像边缘检测(Sobel)3.数字图像锐化4.数字图像的取反5.数字图像直方图均衡化增强五、对设计工程总结与评价经过仿真该系统能够完成预定的任务,我们的设计作品成功完成。在实习过程中,我们遇到了很多的问题,从一开始不知道怎么将几个项目工程联系起来 到内存存储空间的不知道如何分配再到寄存器的含义和种类的不清楚以及LCD显示的种种 问题,但是在短短的两周时间里,我们将遇到的问题一个一个解决掉。这些问题都源于我

35、们 对DSP课程的掌握不够以及软件使用的不熟悉,在实习过程中老师的谆谆教导让我们收获 良多,很多技术性的问题多亏了老师的指点。我们才能及时发现问题。在今后的设计制作系 统中,我们一定要对所用的软件熟练操作,要注意团队意识,只有集众人之长,才可以将一 个项目完成的无懈可击。六、参考文献1 .戴明桢,周建江.TMS320C54x DSP结构原理及应用.北京航空航天大学出版社.2008, (11)2. 戴逸民,梁晓雯.基于DSP的现代电子系统设计.电子工业出版社.2002,(2)3. 教学实验系统实验指导书.瑞泰创新电气工程系DSP应用技术成绩评定表课题名称键盘控制数字图像处理方式及LCD显示设计任务与要求姓名:班级:学号:负责任务:数字图像处理模块以及LCD显示要求:能够将数字图像处理的五个模块联系起来并且通过LCD能够显示出是哪种处 理方式。姓名:班级:学号:负责任务:数字图像处理模块以及键盘控制,以及实验报告的撰写要求:能够将数字图像处理的五个模块联系起来并且通过试验箱上的按键来控制以 何种方式来进行数字图像处理。姓名:班级:学号:负责任务:数字图像处理模块要求:掌握数字图像处理的不同方式,并且可以将五个单独的工程联系起来,同时 实现五种图像处理方式。课程成绩评定评定成绩:任课老师:时间:年 月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号