一、图像处理简介

图像处理知识点:
1 数字图像处理及matlab实现知识点总结1-4
2 数字图像处理及matlab实现知识点总结 5-10

二、部分源代码

clear  all
close all
clc;
%%
I = imread('1.png');
% I = double(rgb2gray(I));
% I = im2double(I);
[WS,map,alpha] = imread('水印01.png');  %读取水印图像
W=double(255-alpha);    %alpha 为透明度,此图不透明alpha=0
[mw,nw]=size(W);
W=logical(W);
figure,subplot(121),imshow(I);title('载体图像')
subplot(122),imshow(W);title('水印图像')
%%
ntimes=20;rngseed=59433;
%添加水印
Iw = (setdwtwatermark(I,W,ntimes,rngseed));%计算水印图像的峰值信噪比
mn=numel(I);
Imax=max(I(:));
% psnr=10*log10(mn*double(Imax)^2/sum((im2double(I(:))-im2double(Iw(:))).^2));
peaksnr=psnr(im2uint8(Iw),I);
%提取水印
Wg=getdwtwatermark(Iw,W,ntimes,rngseed);
nc=sum(Wg(:).*W(:))/sqrt(sum(Wg(:).^2))/sqrt(sum(W(:).^2));
figure,subplot(121),imshow(Iw);title('嵌入水印后的载体图像')
subplot(122),imshow(Wg),title(['从载体图像中提取出的水印,NC=',num2str(nc)]);
%%水印攻击实验
function dwtwatermarkattack(action,Iw,W,ntimes,rngseed)
%action;水印攻击类型
%Iw:嵌入水印的图像
%W:原始水印,用来计算相关性
%ntimes,rngseed:水印算法秘钥
%模拟水印攻击
switch lower(action)case 'filter'Ia=imfilter(Iw,ones(3)/9);case 'gaussian noise'Ia=imnoise(Iw,'gaussian');case 'resize'Ia=imresize(Iw,0.5);Ia=imresize(Ia,2);case 'noise'Ia=imnoise(Iw,'salt & pepper',0.01);case 'crop'Ia=Iw;Ia(50:400,50:400,:)=randn();case 'rotate'Ia=imrotate(Iw,45,'nearest','crop');Ia=imrotate(Ia,-45,'nearest','crop');case 'motion filter'  %运动模糊PSF = fspecial('motion',20,15);Ia = imfilter(Iw,PSF,'conv','circular');case 'gaussian filter' %高斯模糊       G = fspecial('gaussian', [5 5], 2);Ia = imfilter(Iw,G,'same');
end
unction Iw =setdwtwatermark(I,W,ntimes,rngseed)
%W水印图像,二值图,且长宽相等
%ntimes:秘钥1,Arnold置乱次数
%rngseed:秘钥2,随机数种子
%Iw:添加了水印后的图像
type=class(I);
% I=double(I);
% IR = I(:,:,1);  IG = I(:,:,2);  IB =( I(:,:,3));
% I=IB;
IHSV=rgb2hsv(I);
IH=IHSV(:,:,1); IS=IHSV(:,:,2); IV=IHSV(:,:,3);
I=IV*255;
[mI,nI]=size(I);
[mW,nW]=size(W);
if mW~=nWerror('SETDWTWATERMARK:ARNOLD','ARNOLD置乱要求水印图像长宽必须相等!')
end
%%
%对载波图像进行水印分解
[ca1,ch1,cv1,cd1]=dwt2(I,'haar');
[ca2,ch2,cv2,cd2]=dwt2(ca1,'haar');%%
%对水印进行置乱
Wa=W;
H=[1,1;1,2]^ntimes;
for i=1:nWfor j=1:nWidx=mod(H*[i-1;j-1],nW)+1;Wa(idx(1),idx(2))=W(i,j);end
end%%
%小波数字水印的嵌入
cd2w=cd2;
rng(rngseed);
idx=randperm(numel(cd2),numel(Wa));%随机打乱一个数字序列
for i=1:numel(Wa)c=cd2(idx(i));z=mod(c,nW);if Wa(i)if z<nW/4f=c-nW/4-z;elsef=c+nW*3/4-z;endelse if z<nW*3/4f=c+nW/4-z;elsef=c+nW*5/4-z;endendcd2w(idx(i))=f;
end

三、运行结果










四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. 2015,37(06)

【图像隐写】基于matlab DWT数字水印嵌入+提取+攻击【含Matlab源码 622期】相关推荐

  1. 【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DCT+DWT音频数字水印嵌入提取[含GUI源码 836期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  2. 【图像隐写】基于matlab LSB数字水印嵌入提取【含Matlab源码 2412期】

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

  3. 【图像隐藏】基于DCT算法实现数字水印嵌入+检测+攻击含Matlab源码

    1 简介 介绍了数字水印的产生.发展及其应用,讨论了数字水印的分类,提出了图像的预处理思想,利用MATLAB中的剪切函数.缩放函数,以及调整图像直方图的方法对图像进行预处理,并用MATLAB进行了仿真 ...

  4. 【数字水印】基于matlab DFT数字水印嵌入提取攻击【含Matlab源码 2320期】

    ⛄一.DFT数字水印简介 1 引言 近几年来,数字水印技术研究取得了很大进展,陆续提出了诸如空域.变换域.压缩域.基于统计学.基于生理模型等多种数字水印算法[1].其中DFT变换域水印算法的研究大多利 ...

  5. 【语音隐写】基于matlab GUI DCT音频数字水印嵌入提取【含Matlab源码 837期】

    一.离散小波变换的音频信号数字水印技术简介 0 引言 近年来, 数字水印技术的作用越来越重要.数字水印技术是将一些标识信息直接嵌入数字载体当中, 或间接表示在信号载体中, 且不影响原载体的使用价值.通 ...

  6. 【语音隐藏】基于matlab小波变换DWT结合离散余弦变换DCT音频数字水印嵌入提取【含Matlab源码 2131期】

    ⛄一.离散小波变换的音频信号数字水印技术简介 0 引言 近年来, 数字水印技术的作用越来越重要.数字水印技术是将一些标识信息直接嵌入数字载体当中, 或间接表示在信号载体中, 且不影响原载体的使用价值. ...

  7. 【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DWT音频数字水印[含GUI源码 712期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  8. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  9. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  10. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

最新文章

  1. python 装饰器 生成器 迭代器和闭包
  2. android获取设备唯一标识_数据埋点:用户唯一标识
  3. Spring MVC之DispatcherServlet请求处理(二)
  4. [设计模式笔记]4.建造者模式
  5. 转:MAC 下安装PHONEGAP开发环境
  6. NetBeans 6.9 发布后选版 1 已经可用
  7. xmind 笔记
  8. 软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现
  9. 【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
  10. JavaEE学习14(应用)--用户自动登陆
  11. Navicat安装教程(超详细)
  12. Vite 入门 Vue Node
  13. POI读取doc,docx文档内容
  14. 计算机进入vga模式,VGA模式是什么,怎么进入VGA模式
  15. 【JS Web 前端知识库】6.说一说BFC
  16. white-space:nowrap normal pre pre-wrap pre-line的区别以及pre和pre-wrap的“首行缩进“问题
  17. 刘涛代言的美丽田园冲刺港股:年内盈利2亿 突击分红1.2亿
  18. JZOJ 6276.树【扫描线】【线段树】
  19. Mysql中B树与B+树的区别
  20. java基础实战练习_JAVA入门第三季第七章实战练习

热门文章

  1. 结对编程之设计电梯控制程序
  2. MapReducer随笔小记
  3. VMware的CentOS部署环境
  4. liunx 中一个命令可以检测 ps -C java --no-heading| wc -l 一般用于shell脚步编写用
  5. ArcEngine中放大、缩小、移动等功能实现的方法
  6. Java新手求助,将两个文件合并为一个文件执行程序是发生的问题
  7. DevExpress XtraReports 入门五 创建交叉表报表
  8. 笑话一则(小狗的故事)
  9. 七月算法机器学习 7 工作流程与模型调优
  10. Atitit 搜索工程师的知识点体系总结 目录 1.1. 理论类 索引 与查询 1 1.2. 类库类 1 1.3. 关联知识类 1 1.4. 其他 1 2. Ref 2 2.1. Atitit 文