【图像隐藏】基于DCT和FFT数字水印嵌入+攻击+提取含Matlab源码
1 简介
文章对DCT(离散余弦变换)和FFT域图像数字水印算法进行了研究,并用matlab工具进行实验,结果表明该算法使水印的嵌入达到了较好的鲁棒性和不可见性.
2 部分代码
function [message_vector,Mo,No] = dwtrecover(watermrkd_img,k,message)
watermarked_image= watermrkd_img;
% determine size of watermarked image
Mw=size(watermarked_image,1); %Height
Nw=size(watermarked_image,2); %Width
Ow=size(watermarked_image,3);
% read in original watermark
orig_watermark=double(message);
% determine size of original watermark
Mo=size(orig_watermark,1); %Height
No=size(orig_watermark,2); %Width
% read in key for PN generator
file_name='_key.bmp';
key=double(imread(file_name))./256;
% reset MATLAB's PN generator to state "key"
j = 1;
for i =1:length(key)
rand('state',key(i,j));
end
message_vector=ones(1,Mo*No);
[cA1,cH1,cV1,cD1] = dwt2(watermarked_image,'haar');
% add pn sequences to H1 and V1 componants when message = 0
for (kk=1:length(message_vector))
pn_sequence_h=round(2*(rand(Mw/2,Nw/2,Ow)-0.5));
pn_sequence_v=round(2*(rand(Mw/2,Nw/2,Ow)-0.5));
if (message(kk) == 0)
% cH1(:,:,1)=cH1(:,:,1)+k*pn_sequence_h;
% cV1(:,:,1)=cV1(:,:,1)+k*pn_sequence_v;
cH1=cH1+k*pn_sequence_h;
cV1=cV1+k*pn_sequence_v;
end
cor_h(kk)=corr2(pn_sequence_h(:,:,1),cH1(:,:,1));
cor_v(kk)=corr2(pn_sequence_v(:,:,1),cV1(:,:,1));
if cor_h(kk) > cor_v(kk)
message_vector(kk)=0;
else
message_vector(kk)=1;
end
end
end
3 仿真结果
4 参考文献
[1]吴和静, 闵昆龙, 刘芳,等. 基于DCT域的图像数字水印算法及matlab实现[J]. 中国科技信息, 2014(9):2.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【图像隐藏】基于DCT和FFT数字水印嵌入+攻击+提取含Matlab源码相关推荐
- 信号检测:基于双稳随机共振的微弱信号检测含Matlab源码
信号检测:基于双稳随机共振的微弱信号检测含Matlab源码 双稳随机共振是一种有效的微弱信号检测方法,广泛应用于各个领域.本文将介绍如何使用Matlab实现基于双稳随机共振的微弱信号检测,并提供相应的 ...
- 【图像隐写】基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取含Matlab源码
1 简介 基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取. 1.1 LSB算法 根据LSB算法简单易实现的特点,结合在图像置乱技术中很好特性的Arnold变换.利用变化产生影子图像.通过 ...
- 【数字水印】基于matlab DFT数字水印嵌入提取攻击【含Matlab源码 2320期】
⛄一.DFT数字水印简介 1 引言 近几年来,数字水印技术研究取得了很大进展,陆续提出了诸如空域.变换域.压缩域.基于统计学.基于生理模型等多种数字水印算法[1].其中DFT变换域水印算法的研究大多利 ...
- 【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码
1 简介 表情识别的研究目标是让计算机能够自动识别出人的表情信息,从而更进一步地增强人机交互的友好性及智能性.但是由于人脸表情识别涉及图像处理,计算机视觉,应用数学等学科的融合,正是由于这种多学科交叉 ...
- 【元胞自动机】基于元胞自动机模拟双通道人群疏散含Matlab源码
1 简介 为了消除礼堂的安全隐患,制定行之有效的应急预案,有必要对礼堂人群疏散运动进行研究,掌握礼堂人群疏散的一般特点和规律.采用基于二维元胞自动机模型对某高校礼堂发生人群疏散运动进行仿真,找出影响礼 ...
- 【路径规划-TSP问题】基于蚁群算法求解实际地图旅行商问题含Matlab源码
1 内容介绍 旅行商问题的传统求解方法是遗 传算法,此算法收敛速度慢,并不能获得问题的最优解.为了求取旅行商问题的最优解,本文在阐述蚁群算法的基本原理,模型以及在旅行商问题中的实现过程的基 础上,提出 ...
- 【BP预测】基于布谷鸟算法优化BP神经网络数据回归预测含Matlab源码
1 简介 锂电池健康状态(SOH)的预测是电动汽车锂电池管理系统的最重要的关键技术之一;传统的误差逆向传播(BP)神经网络容易使权值和阈值陷入局部最优,从而导致预测结果不精确;结合布谷鸟搜索算法(CS ...
- 【Matlab/CV系列】基于层析成像技术的三维重建及其实现【含Matlab源码】
Date: 2019.4.19 代码获取方式 方式一:订阅付费专栏 <毕业设计代码进阶版>,可获取该付费专栏中任意代码1份![推荐] 方式二:完整代码已上传我的资源,点击下面蓝色字体链接, ...
- 【语音识别】基于过零特征实现电话按键语音识别含Matlab源码
1 简介 近年来,随着科学技术的迅猛发展,语音识别技术被广泛应用于各行各业.本文在分析和总结前人研究的基础上,提出了基于多特征参数混合的研究思路,以此来解决在识别率和鲁棒性方面存在的问题.由此可见,如 ...
最新文章
- Redis 操作数据
- 前端学习(3088):vue+element今日头条管理-关于接口的使用(有声版)
- Flink读取Kafka报错:KafkaException ByteArrayDeserializer is not an instance Deserializer
- VC++6.0 单步调试
- java集合框架(二):HashTable
- 01.redis初识
- 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!!
- Redis: 为行情数据库设计键值
- 前端图片文字复制粘贴功能
- Maven 详解及常用命令
- 大学四年总结与感悟及给刚上大学的同学的一些建议
- 【每日力扣Leetcode】459-判断一个字符串是否由子字符串重复组成
- 双拼对简拼和混拼的支持
- 用JS生成声音,实现钢琴演奏
- 通过js实现页面布局
- 捷联惯导系统学习3.2(地球的正常重力场)
- 用什么方式学java_五分钟学Java:打印Java数组最优雅的方式是什么?
- 国内外开源分析及实践
- Java Tank类
- 做个寡言,但心有一片海的人
热门文章
- GANSS 高斯 ALT71 使用说明
- 考研积极自救day3
- 灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM)
- archlinux国内镜像列表
- Docker构建镜像并运行
- java的actionlistener_「actionlistener」Java——事件处理机制监听者基础(一)动作监听ActionListener - seo实验室...
- 飞信2009_拥有5亿用户的飞信为啥干不过微信,主要有2个原因?
- java 获取当前微秒时间
- Invalid or unexpected token “\u200b“
- 蓝桥杯每日一题(既约分数)