欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    DSP实习报告模板.docx

    • 资源ID:4884060       资源大小:718.41KB        全文页数:17页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DSP实习报告模板.docx

    DSP应用技术实习报告课程课题:基于DSP的键盘控制数字图像处理方式及LCD显示专业班级:电子信息科学与技术学生姓名:指导教师:邹修国李林徐友杨红兵完成时间:一、课程内容:掌握直方图统计的原理和程序设计 了解边缘检测的算法和用途 了解锐化的算法和用途 了解取反的算法和用途掌握直方图均衡化增强的原理和程序设计 了解液晶显示器的显示控制原理及编程方法 了解键盘的使用原理及编程方法二、设计功能及工作原理能够实现功能:/数字图像直方图统计/ 数字图像边缘检测(Sobel算子)/数字图像的锐化(LAPLACE算子)/数字图像的取反/数字图像直方图均衡化增强通过键盘的输入可以控制图像处理的方式,并且LCD显示何种处理方式。工作原理: 灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表 示像素的灰度级别,纵坐标表示的是该灰度出现的频率。 边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,也包括方向的确定。大多 数使用基于方向导数掩模求卷积的方法。图像的锐化处理就是使模糊的图像变得更加清晰起来,拉普拉斯锐化法属于常用的一种 微分锐化方法。 求反处理的图像与原来的图像黑白颠倒,取得类似照片底片的效果。 直方图增强的方法就是压缩直方图中比例少的像素所占用的灰度范围,多出来的灰度空 间按照统计比例分配给直方图中比例高的像素使用。三、设计过程1. 各种功能工程的分别建立:/数字图像直方图统计/ 数字图像边缘检测(Sobel算子)/数字图像的锐化(LAPLACE算子)/数字图像的取反/数字图像直方图均衡化增强/ 键盘输入/ 液晶显示器控制显示2. 将各个功能模块进行组合:1)打开键盘输入的工程文件,浏览key.c文件内容;2)打开数字图像直方图统计的工程文件,将Histo.c主函数内的处理部分的代码复制到 key.c文件的casel语句后;3)打开数字图像边缘检测的工程文件,将Image.c主函数内的处理不放入内的代码复制 到key.c文件的case2语句后;4)打开数字图像锐化的工程文件,将Image.c主函数内的处理不放入内的代码复制到 key.c文件的case3语句后;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的主函数进行添加和修改。9)编译并下载程序10)打开观察窗口进行窗口设各项参数设置,分别打开三个,一个用于原图显示,一个用于直方图显示, 一个用于处理后图像显示。进行断点调试,观察图像变化,以及LCD显示。3.主PLL_Init(20);SDRAM_init();InitCTR();TurnOnLCD();/ 打开显示LCDCLS();/清除显示内存CTRLCDCMDR=LCDCMDSTARTLINE; / 设置显示起始行Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (;)CTRLCDCMDR=LCDCMDPAGE; / 设置操作页=0Delay(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;i<50;i+ ) CTRLCDRCR=ledkey1i; /屏幕左侧第1至8行第i列赋值 port8002=0;/ (赋值后当前操作列自动加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);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);break; case 2:CTRLR=0x2;CTRLR=0x40; for ( i=0;i<50;i+ )CTRLCDRCR=ledkey2i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(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(IMAGEWIDTH,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,IMAGEHEIGHT);break;case 3:CTRLR=0x4;CTRLR=0x40;for ( i=0;i<50;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,IMAGEWIDTH,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,IMAGEHEIGHT);/BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT);/BreakPointLaplace(IMAGEWIDTH,IMAGEHEIGHT);break;case 4:CTRLR=0x0;CTRLR=0x48;for ( i=0;i<50;i+ )CTRLCDRCR=ledkey4i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;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,IMAGEHEIGHT);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);break;case 5:CTRLR=0x0;CTRLR=0x50;for ( i=0;i<50;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,dbTargetImage,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,fHistogram1);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,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(MODEPHOTO3,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); /BreakPoint 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;i<50;i+ )CTRLCDRCR=ledkey6i; /屏幕左侧第1至8行第i列赋值port8002=0;/ (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(512);CTRLR=0x0;CTRLR=0x60;break;case 7:for ( i=0;i<50;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;i<50;i+ )CTRLCDRCR=ledkey8i; /屏幕左侧第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<256;i+ ) fHistoi=0.0f;pWork=pImage;for ( i=0;i<nHeight;i+ )for ( j=0;j<nWidth;j+,pWork+ )uWork=(unsigned int)(*pWork);fHistouWork+;uWork=nWidth*nHeight;for ( i=0;i<256;i+ )fHistoi/=uWork;fHistoi*=100; void Enhance(unsigned char *pImage,unsigned char *pImage1,int nWidth,int nHeight,float fHisto256,float fHisto1256) int i,j;unsigned int uWork;unsigned char *pWork,*pWork1;for ( i=0;i<256;i+ )fHisto1i=fHistoi/100;for ( i=1;i<256;i+ )fHisto1i+=fHisto1i-1;for ( i=0;i<256;i+ )luti=fHisto1i*256;for ( i=0;i<256;i+ )if ( luti>=256 )luti=255;pWork=pImage; pWork1=pImage1;for ( i=0;i<nHeight;i+ )for ( j=0;j<nWidth;j+,pWork+,pWork1+ )(*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,0x00,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,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,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,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,0x00,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,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00四、设计工程的仿真图形1. 数字图像直方图统计2.数字图像边缘检测(Sobel)3.数字图像锐化4.数字图像的取反5.数字图像直方图均衡化增强五、对设计工程总结与评价经过仿真该系统能够完成预定的任务,我们的设计作品成功完成。在实习过程中,我们遇到了很多的问题,从一开始不知道怎么将几个项目工程联系起来 到内存存储空间的不知道如何分配再到寄存器的含义和种类的不清楚以及LCD显示的种种 问题,但是在短短的两周时间里,我们将遇到的问题一个一个解决掉。这些问题都源于我们 对DSP课程的掌握不够以及软件使用的不熟悉,在实习过程中老师的谆谆教导让我们收获 良多,很多技术性的问题多亏了老师的指点。我们才能及时发现问题。在今后的设计制作系 统中,我们一定要对所用的软件熟练操作,要注意团队意识,只有集众人之长,才可以将一 个项目完成的无懈可击。六、参考文献1 .戴明桢,周建江.TMS320C54x DSP结构原理及应用.北京航空航天大学出版社.2008, (11)2. 戴逸民,梁晓雯.基于DSP的现代电子系统设计.电子工业出版社.2002,(2)3. 教学实验系统实验指导书.瑞泰创新电气工程系DSP应用技术成绩评定表课题名称键盘控制数字图像处理方式及LCD显示设计任务与要求姓名:班级:学号:负责任务:数字图像处理模块以及LCD显示要求:能够将数字图像处理的五个模块联系起来并且通过LCD能够显示出是哪种处 理方式。姓名:班级:学号:负责任务:数字图像处理模块以及键盘控制,以及实验报告的撰写要求:能够将数字图像处理的五个模块联系起来并且通过试验箱上的按键来控制以 何种方式来进行数字图像处理。姓名:班级:学号:负责任务:数字图像处理模块要求:掌握数字图像处理的不同方式,并且可以将五个单独的工程联系起来,同时 实现五种图像处理方式。课程成绩评定评定成绩:任课老师:时间:年 月日

    注意事项

    本文(DSP实习报告模板.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开