资源简介
由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主程序,没有打包成exe.
代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Sat Nov 01 21:33:02 2014
@author: HIT706
“““
import numpy as np
from matplotlib.figure import Figure
import PIL
from PIL import Image
import cv2
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from Tkinter import *
import tkFileDialog as dialog
import tkMessageBox
import ttk
np.seterr(divide=‘ignore‘ invalid=‘ignore‘)
class WaterMark(object):
def __init__(selfparent):
self.parent = parent
self.size = 256
self.N = 32
self.K = 8
self.Key1 = np.array([12345678])
self.Key2 = np.array([87654321])
self.state =0
fig = Figure()
self.axe_1 = fig.add_subplot(221)
self.axe_1.set_title(u‘不含水印图片‘fontproperties = ‘STXingkai‘)
self.axe_2 = fig.add_subplot(222)
self.axe_2.set_title(u‘水印图片‘fontproperties = ‘STXingkai‘)
self.axe_3 = fig.add_subplot(223)
self.axe_3.set_title(u‘含水印图片‘fontproperties = ‘STXingkai‘)
self.axe_4 = fig.add_subplot(224)
self.axe_4.set_title(u‘提取的水印‘fontproperties = ‘STXingkai‘)
self.canvas = FigureCanvasTkAgg(figself.parent)
self.canvas._tkcanvas.config(bg = ‘gainsboro‘highlightthickness = 0)#
self.canvas._tkcanvas.pack(side = TOPfill = BOTHexpand = YESpadx=0)
self.canvas.show()
frame = frame(self.parent)
frame.pack(fill = X)
label = Label(frametext = ‘水印图片保存为:‘)
label.pack(side = LEFT)
self.filename = StringVar()
entry = Entry(frametextvariable = self.filename)
entry.pack(side = LEFT)
button2 = Button(frametext = ‘添加水印‘command = self.insert_mark)
button2.pack(side = LEFT)
frame2 = frame(frame)
frame2.pack(side = RIGHT)
button1 = Button(frame2text = ‘提取水印‘command = self.seperate_mark)
button1.pack(side = LEFTpadx = 20)
button3 = Button(frame2text = ‘测试‘command = self.noise_test)
button3.pack(side = LEFT)
variable = [u‘添加白噪声‘u‘高斯低通滤波‘]
self.comboBox = ttk.Combobox(frame2value = variablewidth = 10)
self.comboBox.set(u‘添加白噪声‘)
self.comboBox.pack(side = LEFT)
menubar = Menu(self.parent)
filemenu = Menu(menubar)
filemenu.add_command(label = ‘open‘command = self.open_image)
filemenu.add_command(label = ‘open mark‘command = self.open_mark)
filemenu.add_command(label = ‘open picture‘command = self.open_picture)
menubar.add_cascade(label = ‘file‘menu = filemenu)
self.parent.config(menu = menubar)
def open_image(self):
self.image = dialog.askopenfilename(parent = self.parentfiletypes = [(‘*‘‘*.*‘)]titl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10639 2014-12-29 21:35 watermark.py
文件 120910 2014-12-29 19:48 image\text.png
文件 190 2014-12-20 20:33 mark\mark.png
目录 0 2015-01-11 15:16 watermarked
目录 0 2014-12-29 20:04 image
目录 0 2014-12-22 15:13 mark
----------- --------- ---------- ----- ----
131739 6
- 上一篇:仿真3D版本.py
- 下一篇:用tkinter实线图片拖动
相关资源
- python 写的一个json转csv文件的脚本
- RGSS3A解包器Python版
- python多人聊天服务器 socket
- Python 3网络爬虫开发实战
- 线性规划-单纯形法-窗体实现(pytho
- MACD指标股票量化投资策略源码
- python随机森林实现代码和
- python开发的基于串口通讯的上位机应
- 遗传算法实现入侵检测,AISpython实现
- Python零基础10天进阶班.rar
- python 超级玛丽 增强版本完整代码实现
- python3.8爬取拉勾教育mp4视频解密m3u8到
- isbn查询书籍详细信息2.0
- 计算N50的python脚本.zip
- Python+OpenCv实现AI人脸识别身份认证系
- windows下crf++的python接口安装需要文件
- 智能小车视觉巡线python代码
- 用Python自动办公,做职场高手.txt
- 共轭梯度法求解线性方程组conj_gradi
- 使用pyqt5实现的Python-GUI动态作图
- python简易jpeg编码
- 2018传智python 15期 视频教程 今年刚
- python 获取 去哪儿网 火车票信息
- python聊天室
- Python排序算法
- anaconda+python3.5
- 基于python实现的http接口自动化测试框
- jpype1for python3.6
- traits-4.6.0-cp36-cp36m-win_amd64.whl
- python svm算法源码
评论
共有 条评论