基于DCT数字水印算法的Matlab实现源代码?

2025-04-13 13:43:08
推荐回答(1个)
回答1:

  1. 读取图片

  2. 读取水印图片(二维码)

  3. 原图片做成灰度

  4. 水印图做成二值图

  5. 原图做8*8DCT处理

  6. 选择DC成分以外的元素(每个8*8块里选择1个元素)

  7. 生成伪随机乱数

  8. 根据乱数做成密钥

  9. 将水印图根据密钥与算法嵌入到第6步骤

  10. 嵌入后将每个元素替换原来的第6步元素

  11. 做反变换

  12. 图片保存,嵌入完毕

提取

  1. 读取嵌入水印后的图片

  2. 生成嵌入时的伪随机乱数(生成乱数之前可以加一些几何攻击)

  3. 根据乱数做成密钥

  4. 嵌入水印后的图片做8*8DCT处理

  5. 选择DC成分以外的元素(选取跟原来嵌入时相同)

  6. 根据算法与密钥提取水印图

  7. 提取的水印图与原水印图做比较

  8. 保存提取的水印图,提取完毕