轻松搞定嵌入、提取图片盲水印的Python库

盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。blind_watermark 目前支持嵌入图片、字符串和二进制三种方式。轻松搞定嵌入、提取图片盲水印的Python库

安装

使用 pip install 安装

pip install blind-watermark

或者安装最新开发版本

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

使用示例

在 bash 中使用

# embed watermark into image:
blind_watermark --embed --pwd 1234 examples/pic/ori_img.jpeg "watermark text" examples/output/embedded.png
# extract watermark from image:
blind_watermark --extract --pwd 1234 --wm_shape 111 examples/output/embedded.png

Python 中使用

「原图+水印=水印图」轻松搞定嵌入、提取图片盲水印的Python库

填入水印:

from blind_watermark import WaterMark

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)

输出:

@guofei9987 开源万岁!

对水印图像的攻击


攻击方式 攻击后的图像 提取的水印
旋转 45 度 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
随机裁剪 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
面具 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
站切 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
横切 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
调整大小 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
胡椒噘音 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁!’
亮度降低 10% 轻松搞定嵌入、提取图片盲水印的Python库 ‘@guofei9987 开源万岁’

填入图像

填入水印:

from blind_watermark import WaterMark

bwm1 = WaterMark(password_wm=1, password_img=1)
# read original image
bwm1.read_img('pic/ori_img.jpg')
# read watermark
bwm1.read_wm('pic/watermark.png')
# embed
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', )


攻击方式 攻击后的图像 提取的水印
旋转 45 度 轻松搞定嵌入、提取图片盲水印的Python库 轻松搞定嵌入、提取图片盲水印的Python库
随机裁剪 轻松搞定嵌入、提取图片盲水印的Python库 轻松搞定嵌入、提取图片盲水印的Python库
面具 轻松搞定嵌入、提取图片盲水印的Python库 轻松搞定嵌入、提取图片盲水印的Python库

传送门

开源协议:MIT

开源地址:https://github.com/guofei9987/blind_watermark

项目合集:https://github.com/OpenTechCol/OpenTechCol

「回复【加群】加入开源技术交流群,干货很多!」

-END-


原文始发于微信公众号(开源技术专栏):轻松搞定嵌入、提取图片盲水印的Python库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/145781.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!