Python+openCV:模拟数字水印的嵌入和提取

本文介绍了使用Python和OpenCV库进行数字水印的嵌入和提取过程。首先,通过加载原始图片和处理水印图片(包括放大、二值化等步骤),然后将水印嵌入到原始图片中。最后,展示了水印的解码方法及完整代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习OpenCV,看的是微信读书里的《OpenCV轻松入门:面向Python》,根据书上的例题,做了一些小程序

参考来源

《OpenCV轻松入门:面向Python》例3.15

加载原始图片

我从网上找了一张上海的图片,加载成了黑白照片
在这里插入图片描述

oriImg = cv2.imread("shanghai.jpg", 0)  # 0表示将图片转为黑白
r ,c = oriImg.shape
cv2.namedWindow("origin",cv2.WINDOW_NORMAL)  # 设置窗口尺寸,避免图片太大,显示不全
cv2.imshow("origin", oriImg)  # 显示图像
cv2.imwrite('OriginImg.png',oriImg)  # 保存图像

加载水印图片

在这里插入图片描述
水印照片的处理比原图复杂一点,主要是分为几步
1)因为我找个这个图有点小,所以我把图片放大了一点

watermark = cv2.imread("watermark.jpg", 0)
r1 ,c1 = watermark.shape
watermark = cv2.resize(watermark,(r1*6,c1*4))

2)图片处理一下,把图片转成0和1两个值

w1 = watermark[:,:]>200
watermark[w1] = 0
w2 = watermark[:,:]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值