下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 关于DSP图形缩放的课程设计报告

关于DSP图形缩放的课程设计报告.doc

关于DSP图形缩放的课程设计报告

蒋友宁
2019-02-28 0人阅读 举报 0 0 暂无简介

简介:本文档为《关于DSP图形缩放的课程设计报告doc》,可适用于高等教育领域

DSP课程设计报告成都理工大学工程技术学院课程设计目录第一章概述()、项目背景()、研究进展()、研究目的()小结()第二章总体设计及关键技术分析()、理论基础()、理论分析()、设计流程图()、流程图说明()、小结()第三章程序实现()、基于CCS平台实现的算法程序()、基于MATLAB平台实现算法的程序()第四章结束语()第五章参考文献()第一章概述、项目背景、研究进展现在数字图像处理是越来越成熟,我们选择用DSP来缩放图像。一步步的学习并掌握了DSP对图像的基本方法。对于在DSP中,对图形处理的算法还有语言都是我们学习掌握的重点。在实际的课程设计中,我虽然有太多不懂的地方,但我们通过查资料,都一一的的解决了。我们所编写的程序也达到了一起的效果,能将图像放大缩小。、研究目的、熟练地的掌握CCS的软件应用、熟练地掌握MATLAB和DSP对于图像处理的方法、对于数字图像的处理的学习打下基础、小结对于数字图像处理还有许多地方需要我们去学习。第二章总体设计及关键技术分析、理论基础本实验是基于DSP数字信号处理器的实验。在计算机图像处理中,图像缩放是指对数字图像的大小进行调整的过程。而图像缩小又称为下采样或降采样,主要目的使图像符合显示区域的大小,生成对应图像的缩略图。图像放大又称为上采样或或图像插值。图像的缩放将影响图像的质量,图像的放可以有很多种算法。如最近领域插值和双线性插值,其中双线性插值的效果较最近领域插值显得平滑。缩小的图像的方法如近邻取值法和局部平均取值法等。图像缩放是一种非平凡的过程需要在处理效率以及结果的平滑度和清晰度上做一个权衡。当一个图像的大小增加之后组成图像的像素的可见度将会变得更高从而使得图像表现得“软”。相反地缩小一个图像将会增强它的平滑度和清晰度。假设图像x轴方向缩放比率是a,y轴方向缩放比率是b,那么原图中点(x,y)对应与新图中的点(x,y)的转换矩阵为:、理论分析图像的缩放是对图像进行的一种几何运算,用以改变图像的大小。在处理图像的过程中,图像中每个像素的值都要发生变化,数字图像的坐标值是整数,经过这些变换后的坐标不一定是整数,所以要对变换后的整数坐标位置的像素值进行估计。图像的插值,插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的点建立一个连续函数来逼近真实曲线。在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,对图像进行缩放运算,处理后的数据再输出到输出缓冲区。、设计流程图、流程图说明行变量初值为,行像素变量初值为,那么计算像素点的水平缩放及垂直缩放(即图像的放大或缩小)。判断像素是否在原图范围内,如果不在就将像素的亮点先赋值xFF,在就计算像素点的亮度信号,让行像素变量增。当行像素的变量值达到最大就行变量增,如果没有达到最大就继续前面的过程。当行变量值没有达到最大就从行像素变量初值从新执行,达到最大就结束整个过程。、小结对于该实验我们小组认认真真的去查资料,有什么不懂的地方就去问老师和同学。我们是经过许多的努力终于完成了实验。DSP对图像的缩小程序首先将数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,对图像进行缩放运算,处理后的数据再输出到输出缓冲区。第三章程序实现、基于CCS平台实现的算法程序Imagec程序#defineIMAGEWIDTH#defineIMAGEHEIGHT#defineMODEGRAYBAR#defineMODEGRAY#defineMODEPHOTO#defineMODEPHOTO#defineMODEPHOTO#defineMODEPHOTOvoidInitImage(unsignedintnMode,unsignedchar*pImage,intnWidth,intnHeight)unsignedchardbImageIMAGEWIDTH*IMAGEHEIGHTunsignedchardbTargetImageIMAGEWIDTH*IMAGEHEIGHT*直方图统计实验程序*intmain(){InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT)Reverse(IMAGEWIDTH,IMAGEHEIGHT)InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT)BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT)InitImage(MODEPHOTO,dbImage,IMAGEWIDTH,IMAGEHEIGHT)BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT)InitImage(MODEPHOTO,dbImage,IMAGEWIDTH,IMAGEHEIGHT)BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT)InitImage(MODEPHOTO,dbImage,IMAGEWIDTH,IMAGEHEIGHT)BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT)InitImage(MODEPHOTO,dbImage,IMAGEWIDTH,IMAGEHEIGHT)BreakPointReverse(IMAGEWIDTH,IMAGEHEIGHT)while()BreakPoint}IntImagec文件include<stdioh>#defineMODEGRAYBAR#defineMODEGRAY#defineMODEPHOTO#defineMODEPHOTO#defineMODEPHOTO#defineMODEPHOTO#defineMODEBLOCK#defineMODEINCLINE#defineMODEFPHOTO#defineGRAYBARLEVELvoidReadImage(unsignedchar*pImage,char*cFileName,intnWidth,intnHeight)voidInitImage(unsignedintnMode,unsignedchar*pImage,intnWidth,intnHeight){intx,y,nWork,nWorkunsignedchar*pWorkintnPointx=nWidthintnPointy=nHeightfloatfWorkswitch(nMode){caseMODEGRAYBAR:pWork=pImagenWork=GRAYBARLEVELnWork=nHeightGRAYBARLEVELfor(y=y<nHeighty){for(x=x<nWidthx,pWork){(*pWork)=(ynWork)*nWork}}BreakcaseMODEGRAY:pWork=pImagenWork=nHeightnPointynWork=nWork*nWorknWork=nWidthnPointxnWork=(nWork*nWork)nWork=for(y=y<nHeighty){for(x=x<nWidthx,pWork){nWork=(xnPointx)*(xnPointx)(ynPointy)*(ynPointy)nWork=nWorknWorkif(nWork<)nWork=elseif(nWork>)nWork=(*pWork)=nWork}}BreakcaseMODEPHOTO:ReadImage(pImage,"DSPbmp",nWidth,nHeight)breakcaseMODEPHOTO:ReadImage(pImage,"bmp",nWidth,nHeight)breakcaseMODEPHOTO:ReadImage(pImage,"bmp",nWidth,nHeight)BreakcaseMODEPHOTO:ReadImage(pImage,"bmp",nWidth,nHeight)BreakcaseMODEBLOCK:pWork=pImagefor(y=y<nHeighty)for(x=x<nWidthx,pWork)(*pWork)=pWork=pImage(nHeight)*nWidthfor(y=nHeighty<nHeight*y,pWork=nWidth)for(x=nWidthx<nWidth*x)pWorkx=breakcaseMODEINCLINE:pWork=pImagefor(y=y<nHeighty)for(x=x<nWidthx,pWork)(*pWork)=pWork=pImagefWork=nWidthnHeightfor(y=y<nHeighty)for(x=nWidthfWork*yx<nWidthfWork*yx){pWork(ynHeight)*nWidthx=pWork(nHeight*y)*nWidthx=}breakcaseMODEFPHOTO:ReadImage(pImage,"fourierbmp",nWidth,nHeight)breakdefault:break}}voidReadImage(unsignedchar*pImage,char*cFileName,intnWidth,intnHeight){intjunsignedchar*pWorkFILE*fpif(fp=fopen(cFileName,"rb")){fseek(fp,L,SEEKSET)pWork=pImage(nHeight)*nWidthfor(j=j<nHeightj,pWork=nWidth)fread(pWork,nWidth,,fp)fclose(fp)}}Reversec文件#defineIMAGEWIDTH#defineIMAGEHEIGHTexternunsignedchardbImageIMAGEWIDTH*IMAGEHEIGHTexternunsignedchardbTargetImageIMAGEWIDTH*IMAGEHEIGHTintmi,mjunsignedintmnWorkunsignedchar*pImg,*pImgfloatstep=voidReverse(intnWidth,intnHeight,floatamp){pImg=dbImagepImg=dbTargetImagefor(mj=mj<nHeight){for(mi=mi<nWidthpImg){(*pImg)=((*pImg))step=(amp)if(step>=){pImg=(int)stepmi=(int)stepstep=}}step=(amp)if(step>=){pImg=((int)step)*nWidthmj=(int)stepstep=}}}以上就是CCS中的程序。生成的图像如下:、基于MATLAB平台实现算法的程序Matlab提供函数imresize()进行图像缩放,一个简单的图像缩放的Matlab程序如下I=imread('lenabmp')J=imresize(I,,'nearest')figure()imshow(I)title('原始图像')figure()imshow(J)title('经缩放的图像')经过在Matlab运行的程序,生成的图像如下第四章结束语对于本次课程设计,我们对于数字图片的处理从刚开始的陌生。但经过自己的摸索和老师同学的的帮助和多次修改,我们最终完成了本次课程设计的任务。我们小组在本次课程设计中遇到了一些在课堂没有从未遇到的问题,通过对网络查找和通俗额的交流大大促进了设计进程。这次课程设计让我们深刻的明白了对电子密码锁的设计。提高了自身的创作,创新水平,扎实基础,扩展所学。我们在课程设计中收获最大的收获是分析问题和解决问题的方法与能力。从分析任务到书中查找原理,在网络上寻找相关资料。我们的理论知识与实际的设计相脱节,这是我们最致命的弱点。所以在实际的设计中让我们把学过的相关知识都系统的联系起来。对学习的的理论进行深入的理解,这是我们进行这回生产打下的基础。通过本次设计我们深刻的体会到了理论与实际的工程的联系,在系统仿真的这个模块中让我们的理论不至于和实际工程相差很远。对于我们在校大学生生来说这是一个很难得的机会,可以把理论运用到实际中。这次课程设计使我们认识到只有牢牢的掌握了理论知识才能在实际的动手能力和独立思考中解决问题。在本次设计中让我们深刻的认识了自己的不足,比如不想做,畏难呀。所以通过这次设计我知道了作设计要有一个严谨的态度和广博的知识,这才是我们以后能更好的学习的方向。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/21

关于DSP图形缩放的课程设计报告

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利