matlab实现图片区水印,怎么在含有水印的图像中提取出水印

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

%水印嵌入代码

M = 256;%原始图像长度

N = 32; %水印图像长度

K = 8;

I = zeros(M, M);

J = zeros(N, N);

BLOCK = zeros(K, K);

%显示原始图像

subplot(221);

I = imread('C:\Users\Rocky\Documents\MATLAB\cameraman.bmp');

imshow(I);

title('原始图像');

%显示水印图像

subplot(222);

J = imread('C:\Users\Rocky\Documents\MATLAB\matlab.bmp');

imshow(J);

title('水印图像');

%嵌入水印

temp = 1;

for p = 1 : N;

for q = 1 : N;

x = (p - 1) * K + 1;

y = (q - 1) * K + 1;

BLOCK = I(x: x + K - 1, y: y + K - 1);

BLOCK = dct2(BLOCK);

if J(p, q) == 0;

a = -1;

else

a = 1;

end

BLOCK(2, 1) = BLOCK(2, 1) * (1 + a * 0.01);

BLOCK = idct2(BLOCK);

I(x: x + K - 1,y: y + K - 1) = BLOCK;

end

end

%显示嵌入水印后的图像

subplot(223);

imshow(I);

title('嵌入水印后的图像');

imwrite(I,'watermarked.tif','tif');

%从嵌入水印的图像中提取水印

I = imread('cameraman.tif');

J = imread('watermarked.tif');

for p = 1 : N;

for q = 1 : N;

x = (p - 1) * K + 1;

y = (q - 1) * K + 1;

BLOCK1 = I(x: x + K - 1,y: y + K - 1);

BLOCK2 = J(x: x + K - 1,y: y + K - 1);

BLOCK1 = idct2(BLOCK1);

BLOCK2 = idct2(BLOCK2);

a = BLOCK2(1,1) / BLOCK1(1, 1) - 1;

if a < 0

W(p, q) = 0;

else

W(p, q) = 1;

end

end

end

%显示提取的水印

subplot(224);

imshow(W);

title('从含水印图像中提取水印');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你想成为Java架构师吗?掌握这六项就够了!

Java架构师&#xff0c;应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。 我在这里分享6个专题来提高大家的编程能力 开源框架解析-架构师筑基-高性能架构-微服务架构-团队协作开发-B2C商城实战 一、开源框架解析&#xff1a; 程序…

主机不支持php5.4,GoDaddy Linux主机不再支持PHP5.3版本 | Godaddy美国主机中文指南

近日小编发现GoDaddy的Linux虚拟主机已经不再支持PHP5.3版本了&#xff0c;默认的都是5.4以上。也许是考虑到PHP5.4及以上版本性能更优&#xff0c;所以GoDaddy官方去掉了5.3的版本。GoDaddy的Linux虚拟主机支持PHPMySQL等程序环境&#xff0c;而PHP是目前网站程序中非常流行的…

Java并发编程以及并发须知的几个概念:什么是线程安全?

众所周知&#xff0c;在Java的知识体系中&#xff0c;并发编程是非常重要的一环&#xff0c;也是面试的必问题&#xff0c;一个好的Java程序员是必须对并发编程这块有所了解的。为了追求成为一个好的Java程序员&#xff0c;我决定从今天开始死磕Java的并发编程&#xff0c;尽量…

jsonschema php 例子,[宜配屋]听图阁

本文实例讲述了php使用json-schema模块实现json校验。分享给大家供大家参考&#xff0c;具体如下&#xff1a;客户端和服务端的http信息传递&#xff0c;采用json几乎成了标配。json格式简单&#xff0c;易于处理&#xff0c;不过由于没有格式规定&#xff0c;无法校验。好在ph…

Java的主要特性有哪些?

Java语言是简单的&#xff1a; Java语言的语法与C语言和C语言很接近&#xff0c;使得大多数程序员很容易学习和使用。另一方面&#xff0c;Java丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性&#xff0c;如操作符重载、多继承、自动的强制类型转换。特别地&#xff0c…

车载异构网络接入matlab,车载移动异构无线网络架构及关键技术

计算机技术、通信技术和微电子技术的迅速发展&#xff0c;以及三者之间的相互渗透和融合奠定了通信网络技术的应用&#xff0c;推动了社会信息化的发展。近年来&#xff0c;车辆的爆发式增长和无处不在的信息需求也日益将通信网络和车辆紧密结合起来。人们在车辆移动过程中的通…

Java的面试汇总,有这些还担心不通过?

面试官提问的内容通常会由易到难&#xff0c;如果前面容易的内容都答不上来&#xff0c;往往就被刷了&#xff0c;如果是前面提问的都答上来了&#xff0c;他会问一些有深度的问题&#xff0c;这时候就算你回答不上来也不要慌张&#xff0c;他只是看看你的薪资水平而已 接下来…

c matlab.h,用matlab和c写程序,include的mex.h在哪里?

span namewhlm idwhlm请看这个帖子【mcc、mbuild和mex命令详解】a href"http://www.matlabsky.com/thread-544-1-1.html"http://www.matlabsky.com/thread-544-1-1.html/a(1)创建MEX文件>>mcc –x filename (注意这个命令在2008a中已经去掉了)将M文件filename.…

Java开发需要达到什么样的水平才称得上架构师?

小编就从Java架构师&#xff08;P7&#xff09;岗位说起吧&#xff0c;年薪40w&#xff0c;那我们看看什么公司&#xff0c;什么级别可以给到&#xff0c;再看看要求。阿里是Java大厂&#xff0c;所以可以参考阿里的标准&#xff0c;阿里一般是16薪水&#xff0c;所以就是税前2…

matlab源代码 语义相似度计算,如何计算两个句子之间的相似度(句法和语义)...

我应该每次取两个句子并计算它们是否相似。我的意思是&#xff0c;在语法和语义上都是这样。如何计算两个句子之间的相似度(句法和语义)INPUT1&#xff1a;奥巴马签署法律。奥巴马签署了一项新法律。INPUT2&#xff1a; 总线停在这里。 车辆停在这里。INPUT3&#xff1a;纽约的…

java八股 mysql优化

数据库篇-01-MySQL篇-课程介绍_哔哩哔哩_bilibili 1.定位慢查询 2.分析优化慢查询 3.索引概念及结构 3.1 红黑树&#xff08;一种自平衡的二叉排序树&#xff09; 节点可以自动平衡保证log2 n的查找复杂度. 但因为是二叉树&#xff0c;数据多了层数还会多。 所以找一个多叉树 3…

Java开发中快速提升编码能力的方法有哪些?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性&#xff0c;广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网&#xff0c;同时拥有全球最大的开发者专业社群。 Java是一种简单的&…

php数组o m n mn,O(m + n)和O(mn)之间的区别?

小编典典我对发现直觉的建议是思想实验&#xff0c;如下所示&#xff1a;首先&#xff0c;认识到m和n是 输入的 两个 不同度量。它们可能是两个输入流的长度&#xff0c;矩阵边的长度&#xff0c;或同一数据结构的两个不同属性的计数&#xff0c;例如同一图形的边和节点计数&am…

Java虚拟机知识汇总,有这些还怕面试被问到?

首先我们来看一下Java运行时的数据区域&#xff0c;Java虚拟机在执行Java程序的过程中&#xff0c;会把它所管理的内存&#xff0c;划分成若干个不同的数据区域&#xff0c;这些区域都有各自的用途&#xff0c;各自的创建和销毁的时间。 有的区域&#xff0c;随着虚拟机进程的…

Java的多线程以及内存模型的知识点梳理,有想到过这些吗?

JMM大致描述&#xff1a; JMM描述了线程如何与内存进行交互。Java虚拟机规范视图定义一种Java内存模型&#xff0c;来屏蔽掉各种操作系统内存访问的差异&#xff0c;以实现Java程序在各种平台下都能达到一致的访问效果。 JMM描述了JVM如何与计算机的内存进行交互 JMM都是围绕…

Java性能优化方面的程序优化知识点归纳,希望对你有所帮助

常用的程序设计优化技巧&#xff1a; 1、字符串优化处理 &#xff08;1&#xff09;String 类的特点&#xff1a;不变性、针对常量池的优化&#xff08; String.intern() 方法的意义&#xff09; &#xff08;2&#xff09;subString 方法的内存泄漏 : &#xff08;3&#…

java工具栏的工具提示,动态菜单项、状态条提示、工具条提示问题

问题的提出&#xff1a;一个应用程序想要动态改变菜单项。使用CCmdUI::SetText("Menu Text")可以改变菜单文本&#xff0c;但是如何动态改变工具条和状态条的文本呢&#xff1f;有几种策略&#xff0c;避免&#xff0c;欺骗&#xff0c;面对......首先&#xff0c;避…

python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!

openpyxlxlrd/xlwtxlwingsxlsxwriter了解各个库的异同&#xff0c;从而在不同场景下可以灵活使用首先让我们来整体把握下不同库的特点“xlrdxlwtxlutils.xlsxlwt.xlsxlrd.xlsxlutilsxlrdxlwt.xlsxlrdxlwtxlutilsxlwingsXlsxWriter.xlsxopenpyxl.xlsxpandas”如果你懒得看详细的…

Java编程中程序员会遇到的一些感性烦恼,你有遇到吗?

如果作为兴趣来学编程&#xff0c;什么人都适合。毕竟&#xff0c;现在小学生都开始学习编程了。如果要作为职业来说&#xff0c;你到底适合不适合确实是个问题。我教过的学员里面从初中生到博士生、甚至50多岁的企业高管都有&#xff0c;怀着不同的目的来学习JAVA。 我记得教过…

php入门和常用类的使用,php入门教程之常用数据类型和基本语法

php中数据类型有整型、小数型(浮动数)、布尔类型、字符及数组&#xff0c;变量&#xff0c;常量等下面我们一起来看看吧。一 PHP常用数据类型1.基本数据类型1.1整型1.2小数型(浮动数) 包含单精度和双精度1.3布尔类型 (表示真&#xff0c;和 假)1.4字符串2.复合数据类型2.1数组(…