当前位置: 首页 > news >正文

保护你的创意!让图片拥有盲水印[特殊字符][特殊字符]

图像盲水印:Blind&Invisible Watermark

在数字时代,保护我们的创作变得日益重要。无论是摄影师的作品,还是设计师的图像,很多时候,我们希望在不影响视觉效果的前提下,秘密地嵌入一些信息以保护版权。今天,我们将介绍一个强大的开源项目——Blind&Invisible Watermark,它使用盲水印技术,利用离散小波变换、离散余弦变换和奇异值分解(DWT-DCT-SVD)方法嵌入和提取水印,甚至无须使用原始图像。

安装指南

想要使用Blind Watermark,只需通过Python的包管理工具pip进行安装,命令如下:

pip install blind-watermark

对于开发者版本,可以通过以下命令进行安装:

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

使用方法

基于命令行的使用

Blind Watermark可以通过简易的命令行工具进行调用。以下是嵌入水印和提取水印的命令示例。

# 将水印嵌入到图像中
blind_watermark --embed --pwd 1234 examples/pic/ori_img.jpeg "watermark text" examples/output/embedded.png# 从图像中提取水印
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 开源万岁!

水印抗攻击能力

Blind Watermark在处理盲水印时表现出色,能够抵御多种形式的攻击。以下为几种攻击及其结果的示例。

攻击方法攻击后的图像提取的水印
旋转45度‘@guofei9987 开源万岁!’
随机裁剪‘@guofei9987 开源万岁!’
遮挡‘@guofei9987 开源万岁!’
横向裁剪‘@guofei9987 开源万岁!’
纵向裁剪‘@guofei9987 开源万岁!’
缩放‘@guofei9987 开源万岁!’
椒盐噪声‘@guofei9987 开源万岁!’
亮度降低10%E%25E5%25BA%25A6%25E6%2594%25BB%25E5%2587%25BA.jpg&pos_id=img-FJFWf20q-1761576762357)‘@guofei9987 开源万岁!’

这些抗击能力使得Blind Watermark在许多应用场景中都具有实用性,比如图像版权保护、数据隐藏及安全传输等。

扩展知识:嵌入水印的图像及数组位

除了基于字符串的水印,Blind Watermark还支持嵌入位数组数据,以下是一个简单的示例:

# 嵌入位数组
wm = [True, False, True, True, True, False]from blind_watermark import WaterMarkbwm1 = WaterMark(password_img=1, password_wm=1)
bwm1.read_ori_img('pic/ori_img.jpg')
bwm1.read_wm(wm, mode='bit')
bwm1.embed('output/embedded.png')

提取水印的代码段如下:

bwm1 = WaterMark(password_img=1, password_wm=1, wm_shape=6)
wm_extract = bwm1.extract('output/打上水印的图.png', mode='bit')
print(wm_extract)

提取出的结果是一个浮点数组,通常可以设定一个阈值(如0.5)进行处理。

结语

Blind Watermark不仅技术实现合理,且提供了丰富的功能和易用的接口,适合需求多样的开发者和用户。若你对数字水印感兴趣,或想在你的项目中加入水印处理功能,不妨试试Blind Watermark!

同类项目介绍

  • text_blind_watermark:此项目能够将消息嵌入文本中,功能实用且易于使用。GitHub链接

  • HideInfo:该项目支持将信息隐藏为图像、声音和文本,适合多媒体信息的隐匿保护。GitHub链接

以上项目在水印和信息隐藏领域也具备各自独特的应用场景和实现方法,值得进一步探索。

http://www.dtcms.com/a/537733.html

相关文章:

  • NEFTUNE
  • 西安优化网站技术徐州市网站开发
  • 泉州网站建设电话网站地图怎么做、
  • 二十二、DevOps:基于Tekton的云原生平台落地(三)
  • 搜狗网站收录入口万网公司注册网站
  • CUDA中__restrict__关键字的使用
  • 做热图的网站1分钟视频制作报价明细
  • 企业为什么做网站优化推广张掖市作风建设年活动网站
  • 未来做那个网站能致富爱站工具包
  • 建设一个网站系统要多久个人建站系统
  • 汽车紧固技术加速进化,推动汽车产业迈向高质量制造新阶段
  • AI结对编程:人机共创新纪元
  • 网站建设自动适应功能wordpress 开源吗
  • 专业的网站设计师房管局 网站做房查
  • 受欢迎的集团网站建设xxx网站建设与优化推广
  • 东莞市手机网站建设品牌建设项目自主验收公示的网站
  • Matplotlib指南:从入门到出版级数据可视化
  • 央企门户网站哪家做的最好seo技术顾问
  • 合肥专业做网站做网站的公司经营范围怎么写
  • 有个网站做彩盒的香奈儿网站建设策划书
  • 后台系统点击登录按钮直接跳转到目标路由下,而不是首页
  • Web Services 平台元素
  • 建站系统推荐做的高大上的网站
  • 做网站用不用thinkphpwordpress修改邮件模板
  • LeetCode:268. 丢失的数字
  • 怎么在网站添加链接美团如何进行网站的建设和维护
  • 【Linux】初识信号
  • 网站优化常见的优化技术wordpress内置函数
  • HGDB5.6.5集群备机手动switchover提示data目录无效
  • 网站开发品牌做网站 零基础从哪里开始学