轻松搞定嵌入、提取图片盲水印的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库

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容