一、变换域的可逆数字水印简介

计算机技术的飞速发展极大推动了多媒体技术的发展。多媒体产品给人们生活带来便利的同时,其内容认证及版权保护问题也显得越来越重要。在此背景下,数字水印技术成为当前多媒体技术中的一个焦点。
可逆水印技术(Reversible Watermarking Technique)则是数字水印技术中的一个重要部分,与一般的数字水印技术在原理上基本相同。但它独有的一个特点,是在提取出水印数据之后,还能够完全修复由于水印嵌入所造成的原始载体数据的损坏。这使得可逆水印技术广泛应用于军事、医学、法律等领域。传统的可逆水印技术研究多局限于空域。而多媒体信息,尤其是图像数据,在变换域嵌入水印有许多意想不到的优点。
本课题的目的是借助图像数据在变换域的特殊优点,对可逆图像水印算法进行研究,得到视觉效果和嵌入容量都较理想的变换域可逆水印算法。本文从水印技术的综述展开,讨论了在变换域上的可逆水印技术的各种算法。本文主要研究工作如下:
(1)在分析前人基于直方图修改的可逆水印技术基础上,提出一种基于差分图像直方图修改的可逆水印新算法,并在提升图像质量、提高嵌入容量以及实现篡改定位等三个方面对算法进行改进。
(2)研究基于整数小波变换(Integer Wavelet Transform)的可逆水印算法,通过双重水印的嵌入,在保证较高的图像视觉效果的同时,实现了精确的篡改定位功能。
实验表明,以上诸算法在保证嵌入容量的同时,还能保持很高的峰值信噪比,达到了预期的效果。

二、部分源代码

function varargout = watermark(varargin)
% WATERMARK MATLAB code for watermark.fig
%      WATERMARK, by itself, creates a new WATERMARK or raises the existing
%      singleton*.
%
%      H = WATERMARK returns the handle to a new WATERMARK or the handle to
%      the existing singleton*.
%
%      WATERMARK('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in WATERMARK.M with the given input arguments.
%
%      WATERMARK('Property','Value',...) creates a new WATERMARK or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before watermark_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to watermark_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help watermark% Last Modified by GUIDE v2.5 18-Apr-2021 22:15:49% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @watermark_OpeningFcn, ...'gui_OutputFcn',  @watermark_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before watermark is made visible.
function watermark_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to watermark (see VARARGIN)% Choose default command line output for watermark
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes watermark wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = watermark_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in pushbutton25.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global img_3;
ImgPath=get(handles.edit1,'String');
img_3=imread(ImgPath);
axes(handles.axes1);
imshow(img_3);% --- Executes on button press in pushbutton20.
function pushbutton20_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton20 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%————————————————————四级DWT——————————————————
global img_3;
global img_31;
global img_3c;
global img_3s;
[img_3c,img_3s]=wavefast(img_3,4,'haar'); % 得到haar小波变换的系数
img_31=wave2gray(img_3c,img_3s,16); % 将系数重排成图像显示
axes(handles.axes2);
imshow(img_31);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
[3]薛德文.基于变换域的可逆图像水印算法研究[D].哈尔滨工业大学

【图像隐写】基于matlab GUI变换域的可逆数字水印系统设计【含Matlab源码 1813期】相关推荐

  1. 【芯片识别】基于matlab GUI形态学PCB板芯片识别【含Matlab源码 1820期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[芯片识别]基于matlab GUI形态学 PCB板芯片识别[含Matlab源码 1820期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  2. 【大米粒计数】基于matlab GUI形态学大米粒颗粒识别【含Matlab源码 915期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[大米粒计数]基于matlab GUI形态学大米粒颗粒识别[含Matlab源码 915期] (https://download.csdn. ...

  3. 【电力预测】基于matlab GUI灰色模型电力负荷预测【含Matlab源码 769期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [电力负荷预测]基于matlab GUI灰色模型电力负荷预测[含Matlab源码 769期] 获取代码方式2: 通过订阅紫极神光博客付费专 ...

  4. 【光学】基于matlab GUI菲涅尔系数计算【含Matlab源码 1165期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI菲涅尔系数计算[含Matlab源码 1165期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  5. 【图像修复】基于matlab GUI FMM+Criminisi算法彩色图像修复【含Matlab源码 1507期】

    一.FMM+Criminisi算法简介 1 FMM算法 FMM算法是由Telea在2004年提出的,主要思想是先处理待修复区域边缘的像素,然后逐步向内推进,直到所有空洞点修复完毕.设Λ为待修复区域, ...

  6. 【身份证识别】基于matlab GUI形态学二代身份证识别系统【含Matlab源码 947期】

    ⛄一.身份证号码识别简介 1 引言 作为居民身份的象征,身份证是居民身份的唯一标识,它已成为生活中必不可少的证件.在火车站.酒吧等公共场所,流动人口大人员复杂,警察需要对公民的身份证进行核对,排除可疑 ...

  7. 【语音隐写】基小波变换算法求解水印嵌入提取【含Matlab源码 513期】

    ⛄一.简介 随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布.然而,数字作品极易被非法拷贝.伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从而阻碍其自身发展.目前, ...

  8. 【语音去噪】基于matlab GUI切比雪夫+椭圆形低通滤波器语音去噪【含Matlab源码 2198期】

    一.语音处理简介 1 语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: ①在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内.利用这个特点,可以用一个防 ...

  9. 【车道线识别】基于matlab hough变换道路检测直线检测【含Matlab源码 2074期】

    ⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...

  10. 【车道线检测】基于matlab Hough变换图片车道线检测 【含Matlab源码 276期】

    ⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...

最新文章

  1. 代码优化的 5 大原则,第 1 条相信你一开始就没想到!
  2. jmeter json断言_Jmeter接口测试+压力测试
  3. atitit. groupby linq的实现(1)-----linq框架选型 java .net php
  4. 互联网人知道几个情人节?
  5. 《CODM》的成功源自何处?TGA年度移动游戏的总结和思考
  6. .NET Core 3.0中的WinForms创建集中式拉取请求中心
  7. USACO2.11 The Castle hdu1198
  8. poi 读取excel
  9. Linux 命令(107)—— systemctl 命令
  10. 【项目3-2】多肉植物网站
  11. iOS源码分析:Block的本质
  12. 虚拟机安装XP操作系统
  13. vb 访问远程mysql_VB连接远程数据库
  14. 计算机二级python经典真题
  15. 基于Multism的高频小信号谐振放大器仿真研究
  16. 计算机excel保留一位小数,excel表格数据取一位小数-excel保留一位小数
  17. oneNET连接配置参数说明
  18. android中drawable的自建资源
  19. 代理模式与三种方式实现SpringAOP!
  20. 项目风险管理十大黄金法则!高质量项目管理必杀技!

热门文章

  1. Java-集合第二篇Set集合
  2. istringstream字符串流对象
  3. javascript获取css样式文件中定义的样式的方法
  4. 【转载】在回答WCF问题时,在我们的园子找到了一篇彪悍的文章
  5. 2018CHI paper: Communication Behavior in Embodied Virtual Reality
  6. Atitit 命令行dsl传递参数的几种模式对比 cli url模式 键值对NameValuePair urlutil String string = -host 101.13
  7. Atitit 项目管理(5)----------后勤管理与工具链支持管理
  8. Atitit  hre框架v5 新特性  HREv5
  9. paip.函数式编程方法概述以及总结
  10. 基金侧袋机制: 指引与操作规范