数字图像处理在DSP上的实现.doc

上传人:rrsccc 文档编号:9182420 上传时间:2021-02-06 格式:DOC 页数:9 大小:174KB
返回 下载 相关 举报
数字图像处理在DSP上的实现.doc_第1页
第1页 / 共9页
数字图像处理在DSP上的实现.doc_第2页
第2页 / 共9页
数字图像处理在DSP上的实现.doc_第3页
第3页 / 共9页
数字图像处理在DSP上的实现.doc_第4页
第4页 / 共9页
数字图像处理在DSP上的实现.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数字图像处理在DSP上的实现.doc》由会员分享,可在线阅读,更多相关《数字图像处理在DSP上的实现.doc(9页珍藏版)》请在三一文库上搜索。

1、信息与电气工程学院 DSP 应用系统(三级)项目应用系统(三级)项目 设计说明书设计说明书 (2013/2014 学年第二学期) 题 目 : DSP 实现图像旋转 专业班级 : 信息 1102 班 学 号 : 学生姓名 : 指导教师 : 设计周数 : 设计成绩 : 2015 年 3 月 11 日 目目 录录 1 1、设计任务及目的. 1 1 1.1 设计任务 . 1 1.2 设计目的.2 2 2、设计原理. 3 3 3 3、软件程序. 4 4 3.1 主程序. 5 3.2 初始化和读取图像程序.6 3.3 命令文件.7 4 4、运行并观察结果 .8.8 结 论.8 8 参考文献.9 9 - 1

2、 - 基于 DSP 的图像旋转 1 1 设计任务及目的设计任务及目的 1.11.1 设计任务设计任务 (1)实现一路模拟视频信号的采集与显示。 (2)实现单帧图像的旋转(90) 。 (3)图像采用 120*96 点像素,由 SDRAM 中的 722*288 存储图像采样生成。 (4)能从计算机上读取图片。 (5)编写图像旋转程序,在 TMS320C5509 上实现。 1.21.2 设计目的设计目的 图像旋转是一种应用广泛的数字图像处理技术,随着应用水平的不断提高,对在嵌入式 系统中实现高分辨率大图像旋转的需求也越来越高。如在航空领域的高分辨率数字地图图 像的显示处理过程中,由于现有的显示芯片均

3、不能支持图像旋转功能,就需要在资源有限 的嵌入式平台上实现大幅面地图图像的实时旋转。采用 DSP 平台是一种实现方式,具体实 现时需仔细考虑两个方面的问题,一是选用计算量小的旋转算法,二是充分发挥 DSP 平台 强大的并行计算能力。 2 2 设计原理设计原理 目前,图像旋转大多采用基于视口映射的处理。视口是指屏幕上的显示区域范围,方法 是先计算出旋转后视口图像像素在源图像中的坐标地址值,再依据该地址在源图像中对应 读取像素值,最后利用读取的像素值进行插值,得到最终旋转后视口图像。实际上,由于 存在对称性,一幅图像任意角度的旋转可分解为一次 90或 180或 270的旋转,再加 上一次45以内的

4、旋转。 传统的图像旋转一般通过矩阵乘法实现: - 2 - 其中, 为旋转角度。 由于图像是线性存储的,各个像素点之间的相对位置关系确定。如图 1(a)所示,图像 旋转前,任意像素点 P(x,y)和 P1(x1,y1)、P2(x2,y2)及 A(xA,yA)在几何上是矩形的 四顶点关系。由于旋转变换是线性变换,如图 1(b)所示,图像旋转后,各个像素点之间的 相对位置关系不发生变化。所以,对图像作旋转变换,只需对第一行和第一列的像素用式 (1)作矩阵乘法运算,对除第一行和第一列以外的像素,用式(2)进行简单的加减运算即可。 这样避免了对整幅图像的每个像素作矩阵乘法运算,可节省 56 倍的 CPU

5、 周期。 由 DSP 的结构特点可知,只有在数据和程序均位于片内存储器当中的条件下,DSP 的 效率才能得到最大化的发挥。在大图像旋转算法中,由于涉及的图像数据量远大于 DSP 的 片内存储器容量,源图像和最终视口图像等数据必须被存放在片外存储器中。在这种情况 下,为了保证 DSP CPU 高速处理能力的发挥,必须优化数据流,将源图像分块,依次搬移 至片内处理,并设法保证 CPU 当前要处理的图像数据块已经事先在片内存储器中准备好了。 因此在算法整体优化结构上采用 Ping-Pong 双缓冲技术,利用 EDMA 与 CPU 并行工作来隐藏 图像数据块在片内和片外之间的传输时间,使 CPU 能连

6、续不断地处理数据,中间不会出现 空闲等待。 旋转算法的数据调度目的是使算法能够按照一定的规则,将源图像数据有规律地分块, 并按次序分别传输到 DSP 片内存储器中,完成计算后,形成视口图像块,再将视口图像块 按同样的顺序进行排列,形成旋转后的视口图像。整个过程要求调入和调出的图像数据均 是规则分块的,并且调入的源图像块中应该包含计算视口图像块的过程中所需要的全部像 素数据,尤其需要解决其中的大量非连续图像像素地址访问问题。 设第 N 个源图像块为 fN(x,y),旋转后的视口图像块为 fN(x,y),则源图像块的顶 点局部坐标地址值与旋转后视口图像块的顶点局部坐标地址值之间的对应关系为: 其中

7、 width 指源图像块的宽度。 视口逆时针旋转的情况与此类似(如图 5 所示)。区别有以下两点: 源图像块的左边框中点与相应的视口图像块旋转后的左上角顶点对应; - 3 - 源图像块的顶点局部坐标地址值与视口图像块的顶点局部坐标地址值之间的对应关 系式应为: hj+i*IMGHEIGHT=yi+(IMGHEIGHT-j)*120 其中 imgheight 指源图像块的高度。 3 3 软件程序软件程序 3.13.1 初始化和读取图像程序初始化和读取图像程序 #include #define MODEPHOTO1 1 #define MODEPHOTO2 2 #define GRAYBARLEV

8、EL 16 void ReadImage(unsigned char*pImage,char*cFileName,int nWidth,int nHeight); void InitImage(unsigned int nMode,unsigned char*pImage,int nWidth,int nHeight) switch(nMode) case MODEPHOTO1: Readimage(pImage,.DSP.bmp,nWidth,nHeight); break; case MODEPHOTO2: ReadImage(pImage,.1.bmp,nWidth,nHeight);

9、break; default: break; void ReadImage(unsigned char*cFileName,int nWidth,int nHeight) int j; - 4 - unsigned char*pWork; FILE*fp; if(fp=fopen(cFileName,rb) fseek(fp,1078L,SEEK_SET); pWork=pImage+(nHeight-1)*nWidth; for(j=0;jnHeight;j+,pWork-=nWidth) fread(pWork,nWidth,1,fp); fclose(fp); 3.23.2 图像旋转程序

10、图像旋转程序 void change(void); /转换 90 void change() int i,j; for(i=0;iIMGWIDTH;i+ ) for(j=0;j IRAM fill=0 .stack IRAM fill=0 - 5 - .bss IRAM fill=0 .cinit IRAM fill=0 .const IRAM fill=0 .data IRAM fill=0 .far IRAM fill=0 .switch IRAM fill=0 .sysmem IRAM fill=0 .tables IRAM fill=0 .cio IRAM fill=0 4 4 运行并

11、观察结果运行并观察结果 图 1 原图 图 2 顺时针旋转 90 度 - 6 - 图 3 对比图 从实验结果可以看出,本程序的算法实现了图像的顺时针旋转 90 度。 总结总结 两周的三级项目已经结束了,回想起来还真是感受颇深。刚开始拿到题目觉得应该挺 简单的,但真正面对试验箱的时候觉得无从下手。后来在王老师的讲解下,有了一个大体 的框架,来来回回重启过电脑和试验箱数次,最终出现了旋转的效果。我是和我们组的成 员一起探索中得到了旋转图像。完成之后,我觉得这次项目设计不仅是一个扩大自己知识 面,锻炼动手能力的机会,而且也明白了与人合作的极大效果。DSP 是理论界一直探讨的 热门话题,在此,我特别要感

12、谢我的组员和王老师。在你们的帮助下,从图像的采集、初 始化、抽样直到旋转才一步步顺利完成,其中也出了好多小问题,但我们都是不放弃,坚 持去读代码,改代码,直到最终的结果。 参考文献参考文献 1姜阳,周锡青 DSP 原理与实验应用 西安:西安电子科技大学出版社.2008 年 9 月 2方华刚. DSP 原理与应用. 北京:机械工业出版社,2006 年 1 月 3张勇. C/C+语言硬件程序设计基于 TMS320C5000 系列 DSP. 西安:西安电子科技大学出 版社. 2003 年 5 月 4朱虹. 数字图像处理. 北京:科学出版社. 2008 年 5 月 - 7 - 项目设计 评 语 项目设计 成 绩 指导教师 (签字) 年 月 日

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1