matlab学习(一)(3.26-4.1)

一.信息隐藏的概念

        信息隐藏是利用一些技术,使得要隐藏的信息是用眼睛看不出变化的。它将秘密信息隐藏在可公开的媒体信息中,使人们凭直观的视觉和听觉难以察觉基存在。

二.空域信息隐藏技术

        空域信息隐藏是将信息直接嵌入到图像的像素值中的技术。主要应用于数字图像。

2.1.优点: 

        简单:实现起来相对简单,不需要复杂的数学变换。

        隐蔽性:信息嵌入在图像中,不容易被察觉。

2.2.缺点:

        易受攻击:空域信息隐藏容易受到各种攻击,例如压缩、裁剪、滤波等。

        图像质量下降:嵌入信息可能导致图像质量的损失。(失真)

        隐藏容量小

三.频域信息隐藏技术       

        频域信息隐藏是将信息嵌入到图像的频域系数中的技术。(如离散余弦变换或小波变换)将图像从空域转换到频域,然后在频域中进行信息隐藏

3.1.优点:

        安全性较高(更难以察觉):频域信息隐藏相对于空域更难被攻击,因为攻击者不容易直接操作频域系数。

        隐藏效果较好:频域中的某些频率成分更适合隐藏信息。

        隐藏容量大

3.2.缺点

        比较复杂:频域变换和信息嵌入需要更复杂的数学操作。

        图像处理质量影响:频域信息隐藏可能会影响图像的质量,尤其是在高频区域。

四.Arnold变换

        4.1(test1)图片是方形的,在matlab(2018a)中实现,代码实现如下

function img = arnold(img, n)[x, y] = size(img);img = double(img);for j = 1:ntemp = zeros(x);for i = 1:xfor j = 1:yp = [i-1; j-1];p = mod([1, 1; 1, 2] * p, x);temp(i, j) = img(p(1)+1, p(2)+1);endendimg = temp;endimg = uint8(img);
end
function main()img = imread('test.png');img_transformed = arnold(img, 1);imshow(img_transformed);imwrite(img_transformed, 'test_transformed.png');
end

        4.2 (test2)彩色图置换代码如下

img=imread('test.jpeg');%读取图片,根据Arnold变换的条件,图像必须是正方形
mysize=size(img);%当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
if numel(mysize)>2%如果输入是彩色图像img=rgb2gray(img); %将彩色到灰度图像的转换fprintf("图像为彩色图\n");  %其中\r或者\n表示换行
end
imshow(img,[])
title('彩色原图的灰度图');figure(2)
imhist(img)	%原图的直方图统计%如果输入的不是正方形图像,则打印如下
[h,w]=size(img);
if h>wimg = imresize(img, [w w]);fprintf("图像长宽不一样,图像可能失真\r");
end
if h<wimg = imresize(img, [h h]);  fprintf("图像长宽不一样,图像可能失真");
end
[h,w]=size(img);%置乱与逆置乱必须采用共同参数的时候,就相当于密码,才能解密,让图像复原
n=10;%迭代次数
a=1;b=1;
N=h;%N代表图像宽高,宽高要一样%置乱操作
imgnnn=zeros(h,w);
for i=1:nfor y=1:hfor x=1:w           xx=mod((x-1)+b*(y-1),N)+1;   %mod取余操作,(a,b)就是a除以b的余数yy=mod(a*(x-1)+(a*b+1)*(y-1),N)+1;        imgnnn(yy,xx)=img(y,x);                endendimg=imgnnn;
end
imgnnn = uint8(imgnnn);figure(3)
imshow(img,[])%置乱后的图片
title('置乱后的图片 a=1;b=1,n=10');
imwrite (imgnnn,'置乱后的图片.bmp');  %生成图像保存功能%逆置乱复原
img2=imread('置乱后的图片.bmp');%读取置乱图片
for i=1:nfor y=1:hfor x=1:w            xx=mod((a*b+1)*(x-1)-b*(y-1),N)+1;%matlab索引中不能是0,要从1开始yy=mod(-a*(x-1)+(y-1),N)+1  ;        imgnnn(yy,xx)=img2(y,x);                   endendimg2=imgnnn;
end
imgnnn = uint8(imgnnn);
figure(4)
imshow(imgnnn,[])
title('逆置乱的复原图片');
imwrite(imgnnn,'逆置乱的复原图片.bmp');%生成图像保存功能

五.PSNR和NC

PSNR(峰值信噪比)

        PSNR值越高,表示重建质量越好。

NC(Normalized Compression Distance,标准化压缩距离)

        当NC值为1时,表示两个数据序列之间的压缩距离非常小,即它们非常相似。

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

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

相关文章

洛谷 P2658 汽车拉力比赛

思路&#xff1a;二分BFS 题目的大意就是找出一个难度系数&#xff0c;让到达每一个路标之间的相邻格子的高度之差为难度系数。 所以&#xff0c;想要找到这个难度系数&#xff0c;我们需要不断地枚举数据范围内的数据&#xff0c;然后一个一个试试&#xff0c;全部BFS遍历一…

Mysql 和 Redis 数据怎么保持一致性,怎么实现

MySQL 和 Redis 是两种不同类型的数据库&#xff0c;MySQL 是关系型数据库&#xff0c;而 Redis 是键值存储的非关系型数据库。它们在数据一致性的保证上需要采取不同的策略&#xff0c;尤其是在分布式环境中。以下是一些保持 MySQL 和 Redis 数据一致性的常见策略&#xff1a;…

ISELED-演示项目代码

目录 一、main函数二、点灯函数一、main函数 int main(void) {/* Write your local variable definition here */iseledInitType.crcEnable = 1;iseledInitType.firstLedAdr = 1;iseledInitType.tempCmpEnable = 0;iseledInitType.voltSwing = 0;/*** End of Processor Expert…

简单了解裸眼3D呈现技术

裸眼3D呈现是一种不需要佩戴任何特殊设备&#xff08;如3D眼镜或头盔&#xff09;即可观看到3D效果的技术。这种技术近年来得到了快速发展&#xff0c;为观众带来了更加沉浸式的视觉体验。 实现裸眼3D呈现的关键步骤包括&#xff1a; 创建立体图像源&#xff1a;首先需要有一…

HWOD:记录正负数

一、知识点 1、scanf()的返回值 scanf()返回值类型为int&#xff0c;返回转换成功的个数 有代码int temp; scanf("%d",&temp); 在屏幕输入一个数字&#xff0c;比如5&#xff0c;回车&#xff0c;scanf()返回1 在屏幕输入一个字符或字符串&#xff0c;比…

STM32 M3内核寄存器概念

内容主要来自<<M3内核权威指南>> 汇编程序中的最低有效位&#xff08;Least Significant Bit&#xff09;。LSB是二进制数中最右边的位&#xff0c;它代表了数值中的最小单位。在汇编程序中&#xff0c;LSB通常用于表示数据的最小精度或者作为标志位。 ---------…

人工智能|深度学习——基于Xception算法模型实现一个图像分类识别系统

一、Xception简介 在计算机视觉领域&#xff0c;图像识别是一个非常重要的任务&#xff0c;其应用涵盖了人脸识别、物体检测、场景理解等众多领域。随着深度学习技术的发展&#xff0c;深度卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称CNN&#xff…

linux下tar命令的压缩和解压详细使用方法

在Linux系统中&#xff0c;tar命令用于创建、查看、提取和解压 tar 存档文件。以下是 tar 命令的一些常见用法&#xff1a; 压缩文件或目录&#xff1a; tar -czvf archive.tar.gz /path/to/directory # 压缩目录为 .tar.gz 格式的文件tar -czvf archive.tar.gz file1 file2 …

测试人员前期参与设计方案时需要注意什么?

服务的健壮性跟系统设计有很大关系&#xff0c;前期设计时考虑多一些处理逻辑&#xff0c;可以避免后期出现问题带来的损失以及修复问题的成本。 在前期讨论设计方案时测试同学也需要参与&#xff0c;而不只是埋头设计用例和测试&#xff0c;开发同学可能因为思维局限或者思考…

ssm018简易版营业厅宽带系统+jsp

营业厅宽带系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本营业厅宽带系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间…

LeetCode 977 有序数组的平方(双指针法)

给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 解释&#xff1a;平方后&#xff0c;数组变为 […

QCustomPlot一、QCustomPlot基础及画图显示

1、QCustomPlot下载 QCustomPlot源码demo 根据需要选择需要的文件&#xff1a; 完整版。QCustomPlot.tar.gz 源代码例子帮助文档&#xff1b; 共享库。QCustomPlot-sharedlib.tar.gz 库编译和使用&#xff1b; 源代码。QCustomPlot-source.tar.gz 源代码 里面包含了很多QCusto…

夜晚兼职好选择:六大副业助你增收

晚上兼职&#xff0c;无疑是许多寻求额外收入人群的理想选择。以下为您精心推荐的六个副业&#xff0c;既适合晚间操作&#xff0c;又能让您在轻松愉悦中赚取额外收益。 网络调查与市场研究&#xff1a;利用晚上的闲暇时光&#xff0c;参与网络调查与市场研究&#xff0c;为企业…

TO-277肖特基二极管 散热效果好 型号齐全

市场对于肖特基二极管的需求非常旺盛&#xff0c;近日常有客户前来东沃电子咨询TO-277B 封装系列肖特基二极管选型、价格、交期、现货等方面的问题。东沃电子推出的TO-277B 封装系列肖特基产品&#xff0c;外形扁平&#xff0c;散热片外露设计&#xff0c;能够有效改善散热能力…

JAVA 100道题(25)

25.实现一个死锁示例&#xff0c;并解释如何避免死锁。 在Java中&#xff0c;死锁通常发生在两个或更多的线程无限期地等待一个资源&#xff0c;而该资源又被另一个线程持有&#xff0c;后者也在等待另一个线程释放资源。这形成了一个循环等待条件&#xff0c;导致所有涉及的线…

配置plsql链接Oracle数据库(新手)

配置plsql链接Oracle数据库 安装Oracle客户端 、安装plsql客户端并激活 配置tnsnames.ora文件&#xff08;路径D:\app\peter\Oracle\InstantClient\network\admin根据你的实际路径设置&#xff09; 配置文件如下 # tnsnames.ora Network Configuration File: D:\app\peter\O…

练习 16 Web [极客大挑战 2019]LoveSQL

extractvalue(1,concat(‘~’, (‘your sql’) ) )报错注入&#xff0c;注意爆破字段的时候表名有可能是table_name不是table_schema 有登录输入框 常规尝试一下 常规的万能密码&#xff0c;返回了一个“admin的密码”&#xff1a; Hello admin&#xff01; Your password is…

HTML/XML转义字符对照

特殊字符转义表 字符十进制转义字符"&quot;&&amp;<<<>>>不断开空格(non-breaking space) 最常用的转义字符列表 显示说明实体名称十进制编号半方大的空白&ensp;全方大的空白&emsp;不断行的空白格 <小于<<>大于&g…

2024最新软件测试【测试理论+ app 测试】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

JAVA基础02-Java语言基础以及编译准备工作

什么是JAVA语言 Java是一门面向对象的编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用的两个特征。 &#xff08;可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式…