2 hans1992 Hans1992 于 2015.06.26 15:04 提问

vhdl语言如何设计图像处理系统

要求:用vhdl语言设计一个图像处理系统,可完成以下功能1.嵌入功能:可将一幅256x256的彩色图像转为8位灰度图像,然后在该灰度图像的LSB比特面随机嵌入三个不同的二值序列;最后,将嵌入水印序列的灰度图像恢复为彩色图像。2.检测功能:输入任意彩色图像,可从对应灰度图像的LSB平面检测上述三个序列。3.三个序列为序列1:01101序列2:10101序列3:110014. 输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置5. 建立序列检测状态机,实现图像中三个序列的检测。注:嵌入是指用指定的序列替代图像中原来的比特序列LSB平面是指8bit灰度图像每个像素的最低位比特构成的二值矩阵

3个回答

cangcui
cangcui   2015.06.27 16:00
我不会VHDL,关于这个题目的一点想法,可以参考下:
1. 首先猜测下你们老师的意图:一幅彩色图片,如果只对LSB平面(灰度值最低比特位所构成的平面)做更改的话,那对整个彩色图片的影响是很小的,
    因为是最低比特位了,对整个值的影响也就加1或减1的区别。既然改变LSB平面的影响小,那就可以充分发挥它的用途,比如加入指定的序列(这个可以防伪,貌似),
        比如在LSB平面放另一个二值图片,......等等。。
  1. 彩色图片转成灰度图,再把灰度图转成彩色图:每个彩色图片的每个像素点都由RGB三原色构成,可以把RGB转成其他颜色格式,假设转成了某一种格式XYZ,
    具体的可以去网上找找。这样灰度值可以从新的格式中的某一维直接读出(据我所知,YUV,YIQ格式中的Y就表示的灰度值),然后对该灰度值做更改,但要保存其他两个颜色维度的信息,
    这样既保存原有一幅彩色图像所需的颜色信息,又更改了灰度值,才能实现彩色到灰度再到彩色的转换。

  2. 嵌入的位置:我同学跟我说的,VHDL处理的是流式数据,那这样的话,一幅图片也是一个像素点一个像素点的流式数据。就像C中的二维数组其实
    也可以转成1维数组一样的道理,二维数组里面的元素地址的计算是把最开始元素的地址+偏移值,比如一个mxn大小的二维数组A,A(i,j)元素从一维数组的
    角度看的话,就是第ixn+j个元素。这样的话在LSB平面嵌入一个序列,只要确定从第几个比特位开始嵌入就行。

    1. 序列检测:这个网上的内容应该比较多,我也不大了解,看你的了

上面就是一点个人想法,希望对你有帮助。

cangcui
cangcui   2015.06.27 16:06

(CSDN的这个编辑器不知道怎么回事,好好的格式成了什么样了,再发一遍)我不会VHDL,关于这个题目的一点想法,可以参考下:

  1. 首先猜测下你们老师的意图:一幅彩色图片,如果只对LSB平面(灰度值最低比特位所构成的平面)做更改的话,那对整个彩色图片的影响是很小
    的,因为是最低比特位了,对整个值的影响也就加1或减1的区别。既然改变LSB平面的影响小,那就可以充分发挥它的用途,比如加入指定的序列
    (这个可以防伪,貌似),比如在LSB平面放另一个二值图片,......等等。。

  2. 彩色图片转成灰度图,再把灰度图转成彩色图:每个彩色图片的每个像素点都由RGB三原色构成,可以把RGB转成其他颜色格式,假设转成了某一 种格式XYZ,具体的可以去网上找找。这样灰度值可以从新的格式中的某一维直接读出(据我所知,YUV,YIQ格式中的Y就表示的灰度值),然后 对该灰度值做更改,但要保存其他两个颜色维度的信息,这样既保存原有一幅彩色图像所需的颜色信息,又更改了灰度值,才能实现彩色到灰度再 到彩色的转换。

  3. 嵌入的位置:我同学跟我说的,VHDL处理的是流式数据,那这样的话,一幅图片也是一个像素点一个像素点的流式数据。就像C中的二维数组其实
    也可以转成1维数组一样的道理,二维数组里面的元素地址的计算是把最开始元素的地址+偏移值,比如一个mxn大小的二维数组A,A(i,j)元素从一
    维数组的角度看的话,就是第ixn+j个元素。这样的话在LSB平面嵌入一个序列,只要确定从第几个比特位开始嵌入就行。

    4.序列检测:这个网上的内容应该比较多,我也不大了解,看你的了

    上面就是一点个人想法,希望对你有帮助。

cangcui
cangcui   2015.06.27 16:09

额,这个编辑器真的是个渣,同学,去知乎问吧,看到这个格式,我自己都不想看

Csdn user default icon
上传中...
上传图片
插入图片