专栏首页Python七号保护版权,用 Python 为图片添加盲水印

保护版权,用 Python 为图片添加盲水印

如果你想保护自己的原创图片,那最好的方式就是为图片添加盲水印,盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。今天分享如何用 Python 为图片添加盲水印。

为图片添加盲水印,自然是搜索相关的工具,通常情况下,我会去 GitHub 输入英文关键字进行搜索,搜索结果如下:

选择 star 数量最多的通常错不了,guofei9987/blind_watermark 试了一下,果然是最好用的,特点:

  • 简单。解析水印图时无需原图
  • 抗攻击。水印图剪裁、旋转都不会破坏图中的盲水印
  • 支持密码加密

以下是其使用方法,主要内容:

  • 1、安装
  • 2、添加文本水印与提取
  • 3、添加图片水印与提取
  • 4、抗攻击能力
  • 5、原理

1、安装

安装正式版:

pip install blind-watermark

我安装后使用的时候报错:ModuleNotFoundError: No module named 'pywt',此时,可以通过 pip install pywavelets 来解决。

安装开发版本:

git clone git@github.com:guofei9987/blind_watermark.git
cd blind_watermark
pip install .

该工具用到的其他库:

numpy>=1.17.0
opencv-python
setuptools
PyWavelets

2、添加文本水印与提取

添加文本水印:

from blind_watermark import WaterMark

## 设置密码,默认是 1
bwm1 = WaterMark(password_img=1, password_wm=1)

## 读取原始图片
bwm1.read_img('pic/ori_img.jpg')

## 定义水印文本
wm = '@guofei9987 开源万岁!'

## 合并文本并输出新的图片
bwm1.read_wm(wm, mode='str')
bwm1.embed('output/embedded.png')

## 输出结果
len_wm = len(bwm1.wm_bit)
print('Put down the length of wm_bit {len_wm}'.format(len_wm=len_wm))

提取文本水印

bwm1 = WaterMark(password_img=1, password_wm=1)
wm_extract = bwm1.extract('output/embedded.png', wm_shape=len_wm, mode='str')
print(wm_extract)

3、添加图片水印与提取

添加图片水印

from blind_watermark import WaterMark

bwm1 = WaterMark(password_wm=1, password_img=1)

## 读取原始图片
bwm1.read_img('pic/ori_img.jpg')

## 读取水印图片
bwm1.read_wm('pic/watermark.png')

## 合并
bwm1.embed('output/embedded.png')

提取图片水印

bwm1 = WaterMark(password_wm=1, password_img=1)
# notice that wm_shape is necessary
bwm1.extract(filename='output/embedded.png', wm_shape=(128, 128), out_wm_name='output/extracted.png', )

4、抗攻击能力

附各攻击的方法:

  • 旋转攻击.py[1]
  • 多遮挡攻击.py[2]
  • 横向裁剪攻击.py[3]
  • 纵向裁剪攻击.py[4]
  • 缩放攻击.py[5]
  • 椒盐击.py[6]
  • 亮度调高攻击.py[7]
  • 亮度调暗攻击.py[8]

5、原理

(小波转换技术)[https://en.wikipedia.org/wiki/Wavelet_transform]

最后的话

本文分享了 Python 为图片添加盲水印的方法,如果觉得有帮助,请点赞、在看、转发,关注公众号「Python七号」,每天学习一个小技术。

留言讨论

参考资料

[1]

旋转攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/旋转攻击.py

[2]

多遮挡攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/多遮挡攻击.py

[3]

横向裁剪攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/横向裁剪攻击.py

[4]

纵向裁剪攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/纵向裁剪攻击.py

[5]

缩放攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/缩放攻击.py

[6]

椒盐击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/椒盐攻击.py

[7]

亮度调高攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/亮度调高攻击.py

[8]

亮度调暗攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/亮度调低攻击.py

本文分享自微信公众号 - Python七号(PythonSeven),作者:somenzz

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flutter图片添加水印功能,Flutter保存Widget为图片

    添加水印,两种实现思路,一种是将图片与水印解码,然后混编再编码,另一种是通过Widget的方式合成。

    早起的年轻人
  • 腾讯云数据万象CI助力企业解决图片处理需求!

    数据上云已经成为了一个必然趋势。企业将数据上传至“对象存储COS”,确保数据的高可用高可靠,随时随地管理,并使用本文的主人公“数据万象CI”解决了各式各样的图片...

    云存储
  • 数据万象盲水印操作实践--添加盲水印

    图片水印的作用想必大家都很了解了。目的就是保护版权,防止被盗,保障作者的劳动成果。那么什么是盲水印呢,简单的说就是---“看不见的水印”。腾讯云目前就提供了盲水...

    腾讯云技术服务团队
  • 99.999999%人看不出来的水印,专治各种盗图

    一个专业摄影师辛苦拍摄的照片,因为没打水印,被别人大肆盗用牟利。就算加了水印,也会被巧妙地裁切或者P掉。

    云存储
  • 技术解码 | 版权保护的下一步——数字水印

    数字水印作为一种新兴的技术方案,在版权保护和溯源中具有广阔的应用前景。本周的技术解码就由狄冲老师为大家解密图像和视频数字水印的相关内容

    腾讯云音视频
  • 3步搞定图像盲水印?试试云开发扩展能力

    云开发不仅支持多端(微信小程序、Web应用、APP应用、QQ小程序),更提供丰富的扩展能力!

    腾讯云开发TCB
  • 3步搞定图像盲水印?试试云开发扩展能力

    云开发不仅支持多端(微信小程序、Web应用、APP应用、QQ小程序),更提供丰富的扩展能力!

    腾讯云开发TCB
  • 微信小商店上线,看数据万象如何助力电商行业。

    ? 7月14日腾讯官方宣布微信小商店正式上线,全民电商的大趋势下,腾讯云数据万象为电商行业提供一站式图片解决方案,助力电商行业发展。 腾讯云数据万象(Clou...

    云存储
  • Python 打造自己的图床升级篇 - PIL 为图片添加水印

    如上图中所示,我们直接将读取到的二进制文件,直接存储到了硬盘中。而我们要给图片添加水印,则就是在这里进行处理。

    FungLeo
  • 水印新思路之~坑人于无形

    有空可以研究一下。很多注重图片版权的公司完全可以设置这种无形水印,发现被人盗用,直接可以拿图告人,拿图找泄密者~ 本文通过一个的实验,简要介绍频域手段添加数字盲...

    逸鹏
  • 数据万象盲水印功能介绍

    盲水印功能是腾讯云万象优图提供的全新水印模式。通过该功能,您可将水印图以不可见的形式添加到原图信息中,并不会对原图质量产生太大影响。在图片被盗取后,您可对疑似被...

    用户4693941
  • 基于腾讯云COS+CI图文音视频解决方案

    从早期的门户网站,到后面的feeds流,再到如今的各种垂直行业的社区分享,一次次变更成就了近几年行业中的领跑者。从行业领先的微博,再看小红书、B站等等,绝对都是...

    云存储
  • Python 万能代码模版:批量搞图,秀翻全场(上)

    文章都会在公众号首发噢:公众号:AI悦创。博客:https://www.aiyc.top/ 也会同步发送。

    AI悦创
  • 数据万象盲水印添加和提取

    官方文档:https://cloud.tencent.com/document/product/460/19017#.E6.8F.90.E5.8F.96.E7....

    爆龙战士
  • 数据万象盲水印操作实践--提取盲水印

    提取盲水印的请求包与 COS 简单上传文件接口一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4...

    腾讯云技术服务团队
  • 浅谈屏幕拍摄泄密跟踪的检测技术

    前言关注屏幕拍照安全检测技术介绍数字盲水印屏幕矢量水印摄像头检测屏摄检测缓解办法参考资料

    安全乐观主义
  • 谷歌发明图片批量去水印新算法,呼吁素材网站将水印随机化

    安妮 编译整理 量子位 出品 | 公众号 QbitAI 图片素材网站为了保护版权,通常要将图片打个水印。 但最近,谷歌的研究人员发现了一种新算法,可以轻松批量将...

    量子位
  • 【玩转腾讯云】基于COS+CI+MPS图文音视频完整解决方案

    本文将主要介绍如何通过腾讯云下的对象存储COS,数据万象CI,视频处理MPS、CMQ和CDN等服务来一招解决社区功能中图文音视频方案。

    netkiddy
  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过...

    高树磊

扫码关注云+社区

领取腾讯云代金券