要求:用vhdl语言设计一个图像处理系统,可完成以下功能1.嵌入功能:可将一幅256x256的彩色图像转为8位灰度图像,然后在该灰度图像的LSB比特面随机嵌入三个不同的二值序列;最后,将嵌入水印序列的灰度图像恢复为彩色图像。2.检测功能:输入任意彩色图像,可从对应灰度图像的LSB平面检测上述三个序列。3.三个序列为序列1:01101序列2:10101序列3:110014. 输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置5. 建立序列检测状态机,实现图像中三个序列的检测。注:嵌入是指用指定的序列替代图像中原来的比特序列LSB平面是指8bit灰度图像每个像素的最低位比特构成的二值矩阵
3条回答
- cangcui 2015-06-27 08:00关注
我不会VHDL,关于这个题目的一点想法,可以参考下: 1. 首先猜测下你们老师的意图:一幅彩色图片,如果只对LSB平面(灰度值最低比特位所构成的平面)做更改的话,那对整个彩色图片的影响是很小的, 因为是最低比特位了,对整个值的影响也就加1或减1的区别。既然改变LSB平面的影响小,那就可以充分发挥它的用途,比如加入指定的序列(这个可以防伪,貌似), 比如在LSB平面放另一个二值图片,......等等。。
彩色图片转成灰度图,再把灰度图转成彩色图:每个彩色图片的每个像素点都由RGB三原色构成,可以把RGB转成其他颜色格式,假设转成了某一种格式XYZ,
具体的可以去网上找找。这样灰度值可以从新的格式中的某一维直接读出(据我所知,YUV,YIQ格式中的Y就表示的灰度值),然后对该灰度值做更改,但要保存其他两个颜色维度的信息,
这样既保存原有一幅彩色图像所需的颜色信息,又更改了灰度值,才能实现彩色到灰度再到彩色的转换。-
嵌入的位置:我同学跟我说的,VHDL处理的是流式数据,那这样的话,一幅图片也是一个像素点一个像素点的流式数据。就像C中的二维数组其实
也可以转成1维数组一样的道理,二维数组里面的元素地址的计算是把最开始元素的地址+偏移值,比如一个mxn大小的二维数组A,A(i,j)元素从一维数组的
角度看的话,就是第ixn+j个元素。这样的话在LSB平面嵌入一个序列,只要确定从第几个比特位开始嵌入就行。- 序列检测:这个网上的内容应该比较多,我也不大了解,看你的了
上面就是一点个人想法,希望对你有帮助。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘