一、DWT+SVD数字水印简介

理论知识参考文献:基于DWT和SVD的彩色图像数字水印算法研究
一种基于DWT-SVD的图像数字水印算法

二、部分源代码

function varargout = main(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @main_OpeningFcn, ...'gui_OutputFcn',  @main_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin & isstr(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
endfunction main_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = main_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function axes1_ButtonDownFcn(hObject, eventdata, handles)
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispcset(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function pushbutton1_Callback(hObject, eventdata, handles)
f1=uigetfile('*.bmp','打开载体图像');
guidata(hObject, handles);
global cover_object;
cover_object=imread(f1);
axes(handles.axes1);
imshow(cover_object);
title('载体图像');
function pushbutton3_Callback(hObject, eventdata, handles)
f2=uigetfile('*.jpg','打开原始水印图像');
guidata(hObject, handles);
global watermark;
watermark=imread(f2);
watermark=im2bw(watermark);
axes(handles.axes4);
imshow(watermark);
title('水印图像');
function pushbutton2_Callback(hObject, eventdata, handles)
global watermark;
global watermark_en;
Mm=size(watermark,1);
Nm=size(watermark,2);
N=Mm*Nm;
key=0.2345;
m(1)=key;
for i=1:N-1m(i+1)=4*m(i)-4*m(i)^2;
end
m=mod(1000*m,256);
m=uint8(m);m=im2bw(m);
n=1;
for i=1:Mmfor j=1:Nmwatermark_en(i,j)=bitxor(m(n),watermark(i,j));n=n+1;end
end
axes(handles.axes6);
imshow(watermark_en);
title('加密水印');
global watermark_en;
function pushbutton4_Callback(hObject, eventdata, handles)
global cover_object watermark_en CWI Temp;
[mm,nn]=size(cover_object);
[mm1,nn1]=size(watermark_en);
[LL HL LH HH]=dwt2(cover_object,'haar');
[U,S,V]=svd(LL);
af=0.03;
[lm,ln]=size(LL);
WW=zeros(lm,ln);
for i=1:mm1for j=1:nn1WW(i,j)=watermark_en(i,j);end
end
Temp=S+af*WW;
[U1,S1,V1]=svd(Temp);
CW=U*S1*V';
I1=idwt2(CW,HL,LH,HH,'haar');
CWI=uint8(I1);
axes(handles.axes2);
imshow(CWI);
title('含水印信息的载体图像');
global CWI;
global Temp;
function pushbutton8_Callback(hObject, eventdata, handles)
global CWI;
global attackf;
f=CWI;
attackd=get(handles.popupmenu1,'Value');
while attackd~=0
switch attackdcase 1,attackf=f;att='未攻击';
break;case 2,
f(20:180,20:180)=256;
attackf=f;
att='剪切图像';
break;case 3,
attackf=imadjust(f,[],[0.4,1]);
att='图像增亮';
break;
case 4,
attackf=imadjust(f,[],[0,0.95]);
att='图像变暗';
break;
case 5,

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]梁欣.基于DWT和SVD的彩色图像数字水印算法研究[J].计算机与数字工程. 2019,47(08)
[6]张秀娟,朱春伟.一种基于DWT-SVD的图像数字水印算法[J].数字技术与应用. 2017,(10)

【图像隐写】基于matlab GUI DWT+SVD数字水印 【含Matlab源码 939期】相关推荐

  1. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  2. 【人脸识别】基于matlab GUI人数统计【含Matlab源码 2121期】

    ⛄一.人数统计简介(附课程作业报告) 1 课题背景 本课题为基于matlab的人数统计系统.近年来,很多行业对人流信息有极大的需求,如汽车公交站,地铁站台,商场出入口等.通过人数统计系统可以方便.可靠 ...

  3. 基于SSM的仓库管理系统(含完整源码+论文)

    后端框架:SSM 数据库:MySQL 开发工具:IDEA/Eclipse 系统介绍:本系统是基于SSM框架进行设计,MySQL作为底层数据库,前端采用bootstrap 模块大致介绍:包括库存管理.出 ...

  4. 【图像隐写】DCT文本嵌入+提取【含GUI Matlab源码 1850期】

    ⛄一.DCT数字水印简介 1 前言 随着网络通信技术的发展,社会节奏的加快,网络通信技术的成熟,需求也开始发生改变,人们对便利的需求也越来越大,通过将媒体信息数字化,使得信息表达的精准和效率得到了明显 ...

  5. 【条形码识别】基于matlab GUI二维条形码识别【含Matlab源码 607期】

    ⛄一.二维条形码识别简介 采用数字图像处理技术对二维条码进行识别, 是二维条形码识别中较常用的方法, 它在处理污损的条形码方面有光电识别方法无法比拟的优势.另外图像式识别方法对识别角度的要求没有光电识 ...

  6. 【心电信号】基于matlab GUI心电信号预处理【含Matlab源码 938期】

    ⛄一.心电信号预处理方法简介 理论知识参考文献:心电信号预处理方法研究 ⛄二.部分源代码 function varargout = kaishi(varargin) gui_Singleton = 1 ...

  7. 【图像计数】基于计算机视觉实现蚊香片计数含Matlab源码

    1 简介 基于计算机视觉实现蚊香片计数​ 2 部分代码 clc;%清除命令窗口中的内容close all;%关闭所有的figure窗口clear all;%清楚工作空间所有的变量.函数等I=imrea ...

  8. 【图像检测】基于计算机视觉实现米粒个数检测含Matlab源码

    1 简介 2 部分代码 function varargout = mygui(varargin)​​% Begin initialization code - DO NOT EDITgui_Singl ...

  9. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  10. 【图像隐写】基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取含Matlab源码

    1 简介 基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取. 1.1 LSB算法 根据LSB算法简单易实现的特点,结合在图像置乱技术中很好特性的Arnold变换.利用变化产生影子图像.通过 ...

最新文章

  1. 研究生招生多次被“放鸽子”:给学生几点诚信方面的建议
  2. 6.STM32外设函数分类
  3. 数学建模学习笔记——优劣解距离法(评价类)
  4. 华擎主板bios设置图解_华硕、华擎主板升级BIOS 支持全核5GHz处理器酷睿i99900KS
  5. 关于for循环中的变量int i 如果跳出了这个for循环后,i的值是继续保留还是被释放掉了
  6. MySQL日期、字符串、数值型转换
  7. 【kafka】Kafka消费者分区分配策略详解
  8. mysql 前n个最大值_MySQL varchar计算:求列的数目和计算N的最大值
  9. JSCore的基本使用
  10. python统计及格不及格人数_Python一次输入多个值(列出存储信息),python,一次性,数值,列表...
  11. 基于《知网》的词汇语义相似度计算以及复现
  12. 如何看待越来越多年轻人追捧「摸鱼哲学」,拒绝努力的年轻人真比老一辈活得更通透吗?
  13. android开机动画 制作工具,开机动画包制作(bootanimation)
  14. mac重启php-fpm
  15. br模式edr模式_蓝牙BR/EDR 和Bluetooth Smart的十大重要区别
  16. 零件加工 贪心 题解
  17. 一木禾网盘下载分析及批量获取下载地址的实现(上)
  18. 以太坊源码学习(一) 正本清源
  19. SAP常用需求关闭预留未清的处理方法
  20. bat(batch)

热门文章

  1. 并发编程: 生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁
  2. poj2485(Kruskal)
  3. 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索...
  4. HDU 3709 Balanced Number 枚举+数位DP
  5. ATITIT db perf enhs 数据库性能优化 目录 第一章 Cache类 1 第一节 查询cache 1 第二节 Update cache 2 第三节 内存表机制 零时表 2 第四节 雾
  6. Atitit 高并发 性能指标 与压测工具 压测方法 目录 1. 性能的几个指标 1 1.1. 主要是响应时间(Response time) 1 1.2. 2.吞吐量(Throughput) 1 1
  7. atitit 技术选型之道. attilax著 艾龙著 1. 标准 2 1.1. 符合趋势度 2 1.2. 简单易用 2 1.3. 文档丰富度 2 1.4. 下载便利性 2 1.5. 性能 2 1.
  8. Atitit 关于微服务的思考与理解 attilax总结 1.1. 架构的历史 微服务发展历史 Web》soa》msa 1 1.2. 微服务最大特点 独立部署 1 2. 微服务的优点 1 2.1.
  9. Atitit java onvif 开源类库 getProfiles getStreamUri
  10. Atitit. Object-c语言 的新的特性  attilax总结