图片傅里叶变换加入盲水印Python源代码实现

原理:

图片经过傅里叶变换后,水印图片直接按像素覆盖到频率域,因为频谱是中心对称的,所以加水印也要对称的加,具体就是图片分上下两部分,左上加了什么,右下也要加同样的内容。之后傅里叶反变换回去。解水印的时候变换到傅里叶变换提取就可以了。

注意点:

(1) 水印图片的大小要小于要加入水印图片大小的一半(为了成中心对称)。

(2) 图片都要用png或bmp格式,不能用有损压缩的jpg等。

(3) 加水印的时候可以把频谱或水印图片的位置随机化,但要记住这个位置信息,比如我这里用某个固定的随机数种子,解水印的时候恢复到随机位置。

(4) 依水印图片加进去的大小和强度(混合的比例因子),图像在反变换回去的时候会有损失的,仔细看能看到痕迹。

例子:

原图:

image

水印图片:

image

加入盲水印后的结果:

image


反变换解水印:

image


在频域加水印是以牺牲一定的图像整体质量为代价的。

Python实现的源代码:

https://github.com/linyacool/blind-watermark

如果对您有帮助,麻烦在Github里点下Star,谢谢啦~


评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值