vhdl期末设计图像LSB嵌入与检测.docx

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

VHDL课程设计题目:图像LSB嵌入与检测学院(系):学号:学生姓名:一、设计功能和要求设计要求:用vhdl语言设计一个图像处理系统,可完成以下功能:1.嵌入功能:可将一幅256x256的彩色图像转为8位灰度图像,然后在该灰度图像的LSB比特面随机嵌入三个不同的二值序列;最后,将嵌入水印序列的灰度图像恢复为彩色图像。2.检测功能:输入任意彩色图像,可从对应灰度图像的LSB平面检测上述三个序列。3.三个序列为序列1:01101序列2:10101序列3:110014.输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置。5.建立序列检测状态机,实现图像中三个序列的检测。设计功能:一幅彩色图分成许多的像素,每个像素用若干个二进制位来指定该像素的颜色、亮度和属性。因此一幅图由许多描述每个像素的数据组成,这些数据通常称为图像数据。将彩色图像转为8位灰度图像后,每个像素存放在一个byte空间(8位,0-255:0表示最暗色,255表示最亮色)。8位灰度图像可以看成是一系列1位“位平面”的叠加。该设计的水印算法是将信息嵌入到随机选择的图像点中最不重要的像素(LSB:least significant bits)上。例如00100111代表了两个不同渐变度的红色,但是就人眼是分辨不出来的。最低有效位LSB算法,就是利用这一点,达到图像加密解密、压缩,或者数字水印的功能。设计要求中,将灰度图像的LSB比特面随机嵌入三个不同的二值序列,可由用户端口输入3个坐标值,将指定的LSB面序列进行替换,再恢复成彩色图像,并完成序列的检测。二、设计思路根据设计功能和要求,设计步骤如下:1.首先,我们需要选择符合设计要求的256x256的彩色图像,并将其转换成我们可以处理的RGB信息,并保存在pic.coe文件中。2.在ise中,使用IP内核建一个rom文件,通过寻址的方式,输入保存图片信息的文件数据。3.对RGB文件进行处理,并利用从RGB色转为灰度色的算法?Gray = R*0.299 + G*0.587 + B*0.114将256x256的彩色图像数据转为8位灰度图像数据。4.对8位灰度图像数据进行处理,找出此图像的LSB平面,即8bit灰度图像的每个像素的最低位比特。5.嵌入功能:用指定的序列替代图像中原来的比特序列。其中,我们需要的信息有3个需要嵌入的比特信息的位置,即3个坐标值。三个指定序列为:序列1:01101序列2:10101序列3:110016.检测功能:建立序列状态转换机,从对应灰度图像的LSB平面检测上述三个序列并返回标志位。7.利用算法,将灰度图像数据恢复为RGB数据。根据设计步骤,规划整个设计的模块组成如下:获取ROM地址模块(ROM_addr)读取ROM数据模块(pic_Rom)彩色转灰度模块(grbtogray)嵌入模块(insert)灰度转彩色模块(graytogrb)检测模块(detector)三、原理图说明图1设计原理框图四、设计过程与子模块设计说明1.顶层模块输入信号:clk(时钟信号),reset(复位信号)输出信号:pic_Out(24个2进制位),pic_Impus(输出显示脉冲), pic_Out_ena(输出使能端)顶层模块共包括获取ROM地址模块、ROM模块、彩色转灰度模块、嵌入模块、灰度转彩色模块和检测模块并提供3个需要嵌入序列的坐标值。2.在ISE中创建ROM步骤一:首先我们需要使用MATLAB软件读入图片,将其转换成符合设计要求的RGB数据文件。图2 图像的数据矩阵由上图可知,MATLAB文件生成的RGB数据文件是8位256*256*3的数据。RGB是red、green和blue的缩写,即val(:,:,1)代表红色的分量信息,val(:,:,2)代表绿色的分量信息,val(:,:,3)代表蓝色的分量信息。难点部分:由于设计目的是将其导入ISE的ROM中,为了设计方便,我们需要将此RGB数据重新排列。将每个像素点的红绿蓝信息组合起来,形成65536*1的矩阵,矩阵中的每个元素是24位数据。即数据格式如下图所示:图3 图像数据矩阵的数据格式具体matlab程序如下:clcclear allimdata = imread(C:\Program Files\MATLAB\R2011a\Life-Mushroom.png);data_GRB=zeros(256,256);imdata_int=im2double(imdata);imdata_int=round(imdata_int*255);for i=1:256for j=1:256 data_GRB(i,j)=imdata_int(i,j,1)*256*256+imdata_int(i,j,2)*256

文档评论(0)

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

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

1亿VIP精品文档

相关文档