codecamp

Python3简单实现隐写术

本文转载至知乎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的皮卡丘

嵌入效果:

解水印:

更多

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

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

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

Python3制作简易SSH登录工具
Python3实现简单的车牌检测
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }