verilog实现bmp图片的旋转 (完稿)(代码在modelsim60测试通过).docxVIP

verilog实现bmp图片的旋转 (完稿)(代码在modelsim60测试通过).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用verilog语言实现图像的旋转(256*256bmp) (代码测试通过) 学校: 鸿蒙大学子虚学院 系别: 乌有系 专业: 梦语天涯专业 班级: x班 姓名:落花秋雨、青蛙不戒 指导教师: 步青云 完成时间:2013.12.16 目 录 TOC \o 1-3 \h \z \u verilog语言描述电路实现bmp文件的翻转 1 一、课题复述 1 二、问题分析 1 三、设计说明 1 3.1将bmp文件存入verilog中的存储器mem 1 3.2 bmp文件的存储 2 3.3引入翻转函数 2 3.4 文件头的保护 3 四、实验内容 3 4.1实现原文件的显示 3 4.2实现图像的翻转 4 4.3实验结果数据还原为图像 5 五、实验心得体会 5 六、参考文献 5 七、附 录 5 7.1bmp文件的存储格式 5 PAGE 3 PAGE 8 verilog语言描述电路实现bmp文件的翻转 一、课题复述 用verilog语言描述电路,实现把lena图像(也可以是其他图像)(256*256像素)顺时针旋转90度。要求分组完成3-4人一组,自由组队,至少三人,不可独立完成,自行合理安排组内每个成员的工作,工作量大致适中。抄袭判不及格。 考试之前打印上交:原代码、仿真结果、设计说明书、工作报告(包括每个人的工作总结)。第17周之后考试之前上交。 原始图像如果不是256*256*24bit格式的BMP图片,首先用画图工具裁剪成256*256的大小*24bit格式。 具体方法不特别规定,但至少分成两个模块来实现。 二、问题分析 我们需要了解BMP位图的存储格式(详见附录) 首先用$fread系统任务将BMP图片的二进制代码读入存储器meme中;由initial子语句产生clk时钟信号; 由于读出的二进制代码的前54个字节是BMP位图的基本代码,因此在对图片进行翻转时前54个字节的位置不变。由于文件格式为256*256*24bit文件,所以后面为256*256个像素,每24位代表一个像素,因为BMP文件的数据是从左到右,从下到上的。也就是说,从文件中最先读到的是图象最下面一行的左边第一个象素,然后是左边第二个象素……接下来是倒数第二行左边第一个象素,左边第二个象素……依次类推 ,最后得到的是最上面一行的最右一个象素。所以要实现图片的顺时针旋转应该把meme中像素逆时针旋转90度。 最后用WinHex软件把得到的lena.txt文件转换成二进制数据另存为.Bmp文件即可得到翻转后的图片。 应用软软件: ModelSim SE 6.1d WinHex 三、设计说明 3.1将bmp文件存入verilog中的存储器mem 我们将要对256*256*24bit bmp图像进行旋转,定义一个存储器mem,其深度为24位,那么存储地址就为0~65553。 mem 地址 0x000 6 0x000 5 0x000 4 0x300 3 0x000 2 0xd36 1 0x434 0 将mem后65536位视为二维数组,存储器中数据可以视为256*256矩阵。 3.2 bmp文件的存储 bmp文件的显示:(以3*3数组为例见左下图) 0 1 2 3 4 5 6 7 8 6 7 8 3 4 5 0 1 2 根据bmp图像存储格式该文件在存储器中的存储顺序为:(见右上图) 将bmp文件顺时针旋转90。后图像为 左下图 6 7 8 3 4 5 0 1 2 8 5 2 7 4 1 6 3 0 而旋转后的图像存储信息为右上图 从图上观察,可发现将图片顺时针旋转90。也就是将存储器中的数据逆时针旋转90。。 3.3引入翻转函数 将3*3数组进行标注 地址j i 0 1 2 0 0 1 2 1 3 4 5 2 6 7 8 mem:012345678 原地址=3*i+j 旋转后: 地址j i 0 1 2 0 2 5 8 1 1 4 7 2 0 3 6 mem:258147036 新地址=3*j+(2-i) 同理将此函数应用于256*256 bmp mem数组 原地址=256*i+j 即该点所对应的新地址为256*j+255-i。 新地址=256*j+255-i。 3.4 文件头的保护 将数据的操作进行在地址的后65536位上。将前18位0~17位隔离,进行数据保护。 即mem[0:17] 为文件头数据、mem[18~65553]为bmp像素数据。 原地址为:256*i+j+18 新地址为:18+25

文档评论(0)

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

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

1亿VIP精品文档

相关文档