matlab水印嵌入算法,一个基于dwt和hvs的数字水印算法嵌入源代码 水印嵌入不了!!!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function Untitled2
clear all;
clc;
%保存开始时间
start_time=cputime;
figure(1);
%读出原始图像
subplot(1,2,1);
input=imread('image.bmp');
imshow(input);
title('原始图像');
%读出水印
subplot(1,2,2);
water=imread('water1.bmp');
imshow(water);
title('水印');
%三色分离
input=double(input);
water=double(water);
inputr=input(:,:,1);
waterr=water(:,:,1);
inputg=input(:,:,2);
waterg=water(:,:,2);
inputb=double(input(:,:,3));
waterb=double(water(:,:,3));
r=0.06;
%水印R的分解
[Cwr,Swr]=wavedec2(waterr,1,'haar');
%图像R的分解
[Cr,Sr]=wavedec2(inputr,2,'haar');
%水印的嵌入
Cr(1:size(Cwr,2)/16)=Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
k=0;
while k<=size(Cr,2)/size(Cwr,2)-1
Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);
Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+r*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4);
Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+r*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2));
k=k+1;
end;
Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+r*Cwr(1:size(Cwr,2)/4);
g=0.03;
[Cwg,Swg]=wavedec2(waterg,1,'haar');
[Cg,Sg]=wavedec2(inputg,2,'haar');
Cg(1:size(Cwg,2)/16)=Cg(1:size(Cwg,2)/16)+g*Cwg(1:size(Cwg,2)/16);
k=0;
while k<=size(Cg,2)/size(Cwg,2)-1
Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/2);
Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)+g*Cwg(1+size(Cwg,2)/2:3*size(Cwg,2)/4);
Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)=Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+g*Cwg(1+3*size(Cwg,2)/4:size(Cwg,2));
k=k+1;
end;
Cg(1:size(Cwg,2)/4)=Cg(1:size(Cwg,2)/4)+g*Cwg(1:size(Cwg,2)/4);
b=0.12;
[Cwb,Swb]=wavedec2(waterb,1,'haar');
[Cb,Sb]=wavedec2(inputb,2,'haar');
Cb(1:size(Cwb,2)/16)=Cb(1:size(Cwb,2)/16)+b*Cwb(1:size(Cwb,2)/16);
k=0;
while k<=size(Cb,2)/size(Cwb,2)-1
Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+b*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/2);
Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)+b*Cwb(1+size(Cwb,2)/2:3*size(Cwb,2)/4);
Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)=Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+b*Cwb(1+3*size(Cwb,2)/4:size(Cwb,2));
k=k+1;
end;
Cb(1:size(Cwb,2)/4)=Cb(1:size(Cwb,2)/4)+b*Cwb(1:size(Cwb,2)/4);
inputr=waverec2(Cr,Sr,'haar');
inputg=waverec2(Cg,Sg,'haar');
inputb=waverec2(Cb,Sb,'haar');
temp=size(inputr);
pic=zeros(temp(1),temp(2),3);
for i=1:temp(1);
for j=1:temp(2);
pic(i,j,1)=inputr(i,j);
pic(i,j,2)=inputg(i,j);
pic(i,j,3)=inputb(i,j);
end
end
output=uint8(round(pic));
watermarked_image_uint8=uint8(output);
imwrite(watermarked_image_uint8,'watermarked.bmp','bmp');
elapsed_time=cputime-start_time,
figure(2);
imshow(watermarked_image_uint8);
title('水印图像');
matlab水印嵌入算法,一个基于dwt和hvs的数字水印算法嵌入源代码 水印嵌入不了!!!...相关推荐
- 数字水印算法matlab源程序 matlab版数字水印算法 /DCT/DWT/LSB/HVS/W-SVD数字水印源码 数字水印的嵌入和提取 W-SVD数字水印实现
发以下多套系统源码: 1.matlab版数字水印算法 2.MATLAB数字水印 源代码+文档 3.数字水印技术matlab代码 4.数字水印 JPEG压缩 matlab代码 5.数字水印 添加噪声 m ...
- 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度
一个基于特征向量的近似网页去重算法--term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度 摘 要 在搜索引擎的检索结果页面中,用户经常会得到内容相 ...
- 路径规划算法:基于鸟群优化的路径规划算法- 附代码
路径规划算法:基于鸟群优化的路径规划算法- 附代码 文章目录 路径规划算法:基于鸟群优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 3 ...
- 详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法
详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法 TF-IDF的基本原理 算法思想 计算公式 相似度计算原理 微型图书推荐案例 案例背景 开发工具 数据预处理 TF-IDF模型建 ...
- 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度...
摘 要 在搜索引擎的检索结果页面中,用户经常会得到内容相似的重复页面,它们中大多是由于网站之间转载造成的.为提高检索效率和用户满意度,提出一种基于特征向量的大规模中文近似网页检测算法DDW(Det ...
- 【智能优化算法】基于全局优化的改进鸡群算法求解单目标优化问题(ECSO)附matlab代码
1 简介 智能算法分为两种,一种是群体智能算法(swarmintelligencealgorithm),该算法大多模拟自然界中动植物的特有行为,并将其表达成数学语言,从而进行迭代寻优,如模拟蝙蝠回声定 ...
- 【蚁狮算法】基于柯西变异的蚁狮优化算法求解单目标优化问题matlab代码
1 简介 针对蚁狮优化算法较易陷入局部最优停滞,收敛精度低以及收敛速度较慢等问题,将自适应t分布的柯西变异融入到蚁狮优化算法中,提出了基于柯西变异的蚁狮优化算法(CALO).该算法采用轮盘赌的方法挑选 ...
- 病虫害模型算法_基于深度学习的目标检测算法综述
sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...
- 协同过滤算法_基于Mahout的协同过滤推荐算法
1协同过滤 基于物品的协同过滤 对物品进行相似度计算,然后再进行推荐. 基于用户的协同过滤 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢,并对这些喜好进行度量和打分.根据不 ...
最新文章
- 关于征集2020重大科学问题和工程技术难题的通知
- hdu5094(上海邀请赛E) 状态压缩bfs:取钥匙开门到目的地
- php模拟表格冻结,PHPExcel冻结(锁定)表头的简单实现方法
- Android深入浅出之Binder机制
- hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)
- android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava
- LOAD DATA INFILE句法
- 二叉查找树的先序遍历,中序遍历,后序遍历
- Newton Method in Maching Learning
- jQuery 事件 - bind() 方法
- 如何判断过拟合和欠拟合
- 复旦大学计算机学院专业硕士学费,复旦大学计算机在职研究生学费一年要交的学费多少?...
- FFmpeg源代码简单分析:avio_open2()
- EAR、JAR、WAR(IT)
- R语言中与矩阵相关的所有操作 (下)
- 电商数据库设计之MySQL 数据库设计规范
- vasp 计算杨氏弹性_VASP计算-力学常数1
- DNA拷贝数变异CNV检测——基础概念篇
- GO string 转map_go 学习笔记之数组还是切片都没什么不一样
- 【UVM基础】3、核心基类和机制
热门文章
- mtcnn系列-2.数据集讲解
- Android 8.1 系统按键音
- 喀秋莎Camtasia2023最新版本电脑录屏剪辑软件
- 谷歌浏览器开始测试第三方Cookie拦截
- 姜成学SEO:什么是长尾关键词?
- 【JAVA8】新时间API操作大全
- 分数四则运算java_用java具体代码实现分数(即有理数)四则运算
- 【机器学习】机器学习基石-林轩田-2-Learning to Answer Yes_No
- templateRef.createEmbeddedView is not a function
- 协众技术移动端UI设计分这四种