Python简单实现隐写术

2018-08-10 18:12:09 浏览数 (7537)

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

导语

利用Python简单实现图片隐写术。。。

或者说是水印技术。。。

说实话,真的只是简单实现。。。

没什么技术含量。。。

可以说是入门级的隐写术/水印技术。。。

Let's Go?


相关文件

百度网盘链接: https://pan.baidu.com/s/1DNVk11rMcFk9u-B7GE4Jow

密码: 9ffy


开发工具

Python版本:3.5.4

相关模块:

cv2模块;

pillow模块;

numpy模块;

以及一些Python自带的模块。


环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

相关文件中的源代码主要实现了两种水印技术:

(1)空域数字水印

实现的是基于LSB的水印技术。。。

(2)频域数字水印

实现的是基于FFT的水印技术。。。

T_T确实没啥技术含量吧?

图片需为PNG或BMP格式。。。

若频域数字水印效果不佳,请修改alpha因子大小。

具体实现过程详见源代码。。。

使用演示

可直接运行或作为模块导入。

功能:

直接运行方式:

在cmd窗口运行Watermark.py即可。

演示一:基于FFT

载体图片:

水印图片:

嵌入效果:

解水印:

演示二:基于LSB

载体图片:

水印文字:

公众号:Charles的皮卡丘

嵌入效果:

解水印:


更多

上述内容只是入门级的隐写术/水印技术。。。

这是一项非常有趣的技术。。。

以后有机会会复现一些进阶版的水印算法。。。