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

视音频信号处理实验3.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
视音频信号处理实验3

浙江理工大学 《视音频信号处理》 实验报告 2012~2013学年第一学期 学 院 信息学院 班 级 10数媒(1)班 姓 名 黄芳 学 号 任课教师 马文娟 (上课时间:周三1-2节) 数字媒体技术专业 2012年 12 月 《视音频信号处理》实 验 报 告 学号: 姓名:黄芳 班级:10数媒1班 一、实验名称 视频数据处理 二、实验内容 1、 请编写图像矩阵产生程序,具体要求为: a) 共产生两个图像矩阵A[256][256],和B[256][256] b) 图像矩阵中的点A(I,j) = i*256+j,B(I,j) = i*256+j,; c) 特别地,当25=i25+16, 20=j20+16, A(i,j) = i - 20; d) 特别地,当32=i32+16, 16=j16+16, B(i,j) = i - 27; e) 把两幅图像显示出来。 2、以题1中得到的图像数据基础上,以图像A为参考帧,请用三步搜索方法计算图像B中16*16图像块MBlock(32,16)的运动矢量。 三、实验步骤 1、编写图像矩阵产生程序 主要代码: hfView.cpp void CHfView::OnDraw(CDC* pDC) { CHfDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); char A[256][256],B[256][256]; int j; FILE *fa, *fb; CDC * dc; dc=GetDC(); for(int i=0;i256;i++)//生成2个图像矩阵A和B,并把两幅图像显示出来 { for(j=0; j256;j++) { if((i41i=25)(j36j=20)) {A[i][j]=i-20; dc-SetPixel(i,j,i-20);} else {A[i][j]=i*256+j; dc-SetPixel(i,j,i*256+j);} if((i48i=32)(j32j=16)) {B[i][j]=i-27; dc-SetPixel(i+300,j,i-27);} else {B[i][j]=i*256+j; dc-SetPixel(i+300,j,i*256+j);} } } //把生成的像素矩阵存入A.raw和B.raw文件中 if(!(fa=fopen(A.raw,wb))) printf(error to open A.raw\n); if(!(fb=fopen(B.raw,wb))) printf(error to open B.raw\n); fwrite(A,sizeof(A),1,fa); fwrite(B,sizeof(B),1,fb); fclose(fa); fclose(fb); } 结果: 2、以题1中得到的图像数据基础上,以图像A为参考帧,请用三步搜索方法计算图像B中16*16图像块MBlock(32,16)的运动矢量。 代码: #includestdio.h #includestdlib.h struct Block{ public: int x,y; char Array[16][16]; }; int SAD(Block Block1,Block Block2){ int i=0,j=0,sad=0; for(i=0;i16;i++) for(j=0;j16;j++) sad+=abs(Block2.Array[i][j]-Block1.Array[i][j]); return sad; } Block GetBlock(int x,int y,char tmp[256][256]) { int i,j; Block Blocktmp; Blocktmp.x=x; Blocktmp.y=y; for(i=0;i16;i++) for(j=0;j16;j++) Blocktmp.Array[i][j]=tmp[i+x][j+y]; return Blocktmp; } void ThreeStepSearch(int x,int y,Block Block1,char A[256][256],char B[256][256]){ int sad=9999999,temp,flag=0; int a,b; int c=x,d=y; int a0,a1,b0,b1; Block Block2; Block2=GetBl

文档评论(0)

peain + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档