网站大量收购独家精品文档,联系QQ:2885784924

实验四 利用DSP实现图像的缩放.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 利用DSP实现图像的缩放

Leading Digital Signal Processing 北京交通大学电子信息学院 * 利用DSP实现图像的缩放 实验四 (一)实验目的 1.了解图像缩放算法的基本原理。 2.了解利用Matlab实现图像缩放算法的方法。 3. 掌握外部存储器接口(EMIFA)的原理和初始化编程。 4. 掌握利用DM642实现图像缩放的程序设计方法。 (二)实验原理 在计算机图像处理中,图像缩放是指对数字图像的大小进行调整的过程。 图像缩小又称为下采样(subsampled)或降采样(downsampled),主要目的是使图像符合显示区域的大小,生成对应图像的缩略图。图像放大又称为上采样(upsampling)或图像插值(interpolating)。 图像的缩放操作将影响图像的质量。图像放大可以有很多种算法,如最近邻域插值和双线性插值,其中双线性插值的效果较最近邻域插值显得平滑。缩小图像方法如近邻取值法和局部平均取值法等。 假设图像x轴方向缩放比率是fx,y轴方向缩放比率是fy,那么原图中点(x0,y0)对应与新图中的点(x1,y1)的转换矩阵为: 其逆运算如下: (三) Matlab实现图像缩放 Matlab提供函数imresize()进行图像缩放。 一个简单的图像缩放的Matlab程序 % resizepic.m I = imread(lena.bmp); J = imresize(I,0.5, nearest);%图像缩放,缩放系数为0.5。nearest邻近取值法,bilinear是双线性取值法,bicubic局部平均取值法。 figure(1); imshow(I); %显示原图像 title(原始图像); figure(2); imshow(J); %显示经缩放的图像 title(经缩放的图像); 在Matlab中运行该程序,生成下面的图像 (四)图像缩放DSP程序设计 在视频处理任务的循环中,首先通过EDMA方式将捕获到的视频YCbCr数据读入输入采集缓冲区,再对输入采集缓冲区的数据进行图像缩放算法处理,处理后的数据放入到临时缓冲区。处理完成后将临时缓冲区的数据放入显示缓冲区。 实验一 “DSP图像采集与传输”工程已经给出了完整的图像采集与显示程序,本实验只需要将图像缩放算法程序嵌入到dm642main.c中即可,而其它程序可以不作改动。 “图像缩放”工程为“D:\SEED-DTK_VPM642v3.3\ SEED204_Zoom\ Zoomloop2.pjt” /*图像缩放处理算法函数体程序*/ void zoom() { int i,j; //i ,j 为在缩放后图像中的像素行列坐标 int intCapX,intCapY; //intCapY,intCapX为像素在原始图像中的行列坐标 for (i=0;inumLines;i++) { for (j=0;jnumPixels;j++) { //对于缩放后图像中的每一个像素i、j,在原图像中寻找对应像素intCapX,intCapY的亮度值 intCapX = (int)(j/fYZoomRatio+0.5); intCapY = (int)(i/fXZoomRatio+0.5); //判断是否在原图范围内 if ((intCapX=0) (intCapXnumPixels)) { if ((inumLines/2) (intCapY=0) (intCapYnumLines/2)) //奇场 { //传送亮度信号 1、图像缩放处理算法函数体程序分析 *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(capYbuffer + intCapY*numPixels + intCapX); } else if ((i=numLines/2) (inumLines) (intCapY=numLines/2) (intCapYnumLines)) //偶场 { //传送亮度信号 *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(capYbuffer + intCapY*numPixels + intCapX); } else

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档