数字水印技术介绍

1 数字水印

1.1 定义

  数字水印,即通过某种算法,在不影响原有多媒体价值及使用的前提下,将标识信息嵌入到多媒体文件中的技术。数字水印利用人体感官自身的不敏感性和信息本身存在的冗余,采用硬件或软件的方法将图像、文本等一切可以作为标识信息的数字信号与原始载体融合并深深隐藏其中。并且在必要时可检测或提取秘密信息。
  数字水印技术是一种被动保护工具,只能标记数据,无法阻止原始数据的非法使用。其基本特性如下:

  • 不可感知性:从感官的角度,在多媒体作品中嵌入隐藏信息会造成原始数据的改变,但这种改变光凭听觉或视觉是不会察觉到的。
  • 安全性:数字水印的信息不可伪造。
  • 鲁棒性:指数字载体在受到非法入侵者的干扰或破坏后,水印信息仍然能被完整且准确提出出来的能力。
  • 嵌入容量:嵌入容量提高的同时,水印的不可感知性会降低。
  • 明确性:数字水印必须能够且唯一地确定出来,用来确定多媒体作品的真正归属。
1.2 分类

根据数字水印的嵌入位置可以分为:

  • 空间域水印算法:直接在图片上的灰度值上进行操作,不需要对原始载体进行变换,具有计算简单、效率较高、嵌入容量大等优点。
  • 变换域水印算法:通过在变换域执行指定的任务,以后在用反变换返回到空间域已实现信息隐匿效果。目前常用的变换域有DWT域或DCT域。
1.3 示例

  利用LSB算法给图片文件添加文本类型水印。

from PIL import Image
#图片文件
img=Image.open(r'/Users/sherry/Downloads/杀生丸.jpeg')
rgb_img=img.convert('RGB')

#水印信息
text='作者:sherry_sun,2023-09-11'
bin_text=''.join(format(ord(i),'08b') for i in text)

k=0
while True:
    if k==len(bin_text):
        break
    i=(k//3)//img.size[1]
    j=(k//3)%img.size[1]
    data=list(img.getpixel((i,j)))
    data[k%3]=(data[k%3]-data[k%3]%2)+int(bin_text[k])
    img.putpixel((i,j),tuple(data))
    k=k+1

img.save('/Users/sherry/documents/杀生丸1.jpeg')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值