LSB顺序+随机隐写和提取(matlab)
LSB
首先肯定要清楚什么是LSB图像隐写,这里我推荐一个文章
LSB图片隐写
顺序
其实我觉得代码上没什么好解释的,只是按照这个LSB的原理进行操作。
不过我为了能更好、更方便的得到隐写的信息,当要隐写的二进制信息是1时就对数值减一;当要隐写的二进制信息是0时就不做处理,这样得到的img(原图)-img_(隐写)就直接得到了隐写的msg,有点偷懒了。
上代码
img=imread("test.jpg");
img_=img;
msg='10101';
len=strlength(msg);
j=int8(len/256);
left=len%256;
for m=1:j+1if m~=j+1
for i=1:len
if msg(i) == '1'
img_(m,i,1)=img(m,i,1)-1;
endif msg(i) == '0'
endend
endif m==j+1
for i=1:left
if msg(i) == '1'
img_(m,i,1)=img(m,i,1)-1;
end
if msg(i) == '0'
end
end
end
end
随机
这也不难只不过多用了randi这个函数,我简单解释一下,randi(256,2,8)就是随机生成一个2*8的矩阵,然后每个元素的取值是随机的从1到256的整数。
img=imread("test.jpg")
img_r=img;
msg='10101010111';
len=strlength(msg);
if len%2 ==1
zero='0';
msg=[zero,msg];
len=len+1;
end;
mark = 1;
mat=randi(256,len/2,2);
for i=1:size(mat,1)
for j=1:size(mat,2)
if msg(mark) == '1'
img_r(i,j,1)=img_r(i,j,1)-1;
end;
if msg(mark) == '0'
end;
if mark <len
mark=mark+1;
end
end
end
result=img-img_r;
final='';
for i=1:size(mat,1)
for j=1:size(mat,2)
final=[final,num2str(result(i,j,1))]
end
end
初入matlab ,分享共勉 ,不好的地方欢迎指正。
LSB顺序+随机隐写和提取(matlab)相关推荐
- 【LSB】图片隐写文档大纲
第一章 绪论 1.1研究背景 1.2研究意义 1.3主要工作 第二章 图片隐写和LSB算法 2.1关于图片隐写术 2.2LSB算法 第三章 系统设计与实现 3.1图像的加载 3.2文本的预编码 3.3 ...
- 【LSB】图片隐写主体函数
关于图像隐写 图像隐写是一种有效的方式来交换隐藏的消息,而不会引起怀疑.它的工作原理是用lbs算法将消息编码为图像像素的颜色值. 这种功能基于浏览器的最新特性比如File API和Canvas,如果你 ...
- 【图像隐写】基于matlab LSB数字水印嵌入提取【含Matlab源码 2412期】
⛄一.DCT数字水印简介 1 前言 随着网络通信技术的发展,社会节奏的加快,网络通信技术的成熟,需求也开始发生改变,人们对便利的需求也越来越大,通过将媒体信息数字化,使得信息表达的精准和效率得到了明显 ...
- 【语音隐写】基于matlab GUI DCT音频数字水印嵌入提取【含Matlab源码 837期】
一.离散小波变换的音频信号数字水印技术简介 0 引言 近年来, 数字水印技术的作用越来越重要.数字水印技术是将一些标识信息直接嵌入数字载体当中, 或间接表示在信号载体中, 且不影响原载体的使用价值.通 ...
- 【图像隐写】基于matlab DWT+FFT+DCT水印攻击+提取【含Matlab源码 2411期】
⛄一.DCT数字水印简介 1 前言 随着网络通信技术的发展,社会节奏的加快,网络通信技术的成熟,需求也开始发生改变,人们对便利的需求也越来越大,通过将媒体信息数字化,使得信息表达的精准和效率得到了明显 ...
- 【语音隐写】基于matlab小波变换量化音频数字水印【含Matlab源码 351期】
⛄一.小波变换量化音频数字水印简介 随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布.然而,数字作品极易被非法拷贝.伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从 ...
- 基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能
文章目录 前言 一.图像处理基础 二.LSB数字隐写算法 三.LSB数字隐写算法实现 四.数字隐写和提取过程 总结 前言 已经好久没写博客了,最近是在有些忙,但是忙里偷闲写一篇新学的知识点,所以准备写 ...
- python图片隐写_基于python的LSB隐写与分析
隐写 效果 隐写前 隐写后 灰度值直方图差别 部分源码 def dec_to_bin(dec): return '{:08b}'.format(dec) def bin_to_dec(binary_c ...
- 隐写术----LSB隐写
0x00 前言 前文介绍过PNG的文件格式,以及如何在不影响正常浏览的前提下在PNG文件中隐写payload.这次介绍另一种隐写技巧--LSB隐写 其实LSB隐写术已经有很多大佬发了文章介绍,我只是一 ...
最新文章
- Exchange 2007 内存使用问题
- 电脑装机完没有efi_联想M910Q 黑苹果折腾系列③ Hackintosh opencore完善 EFI分享
- 信号的高级特性-核心转储文件
- linux树形目录结构存放,Linux目录结构
- Codeforces Round #642 (Div. 3)(AB)
- idea_取消自动import .*
- 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
- 在Eclipse里搭建Go开发的环境
- Java成神之路——ASM,Javassist,cglib区别。
- 【2019.08.23】2019CCPC网络赛
- 如何用MEF实现Asp.Net MVC框架
- 数据切片与MapTask并行度
- 从例图中学习思维导图的基本概念
- SQL2005安装及连接
- opencms mysql_OpenCms for MySql 安装图解
- 银行业务模拟系统(C/C++实现内含详细注释)
- Java制作JDK8文档搜索引擎项目并部署到阿里云服务器
- 【规范】C/C++注释格式
- 【2D 目标检测】CornerNet: Detecting Objects as Paired Keypoints
- JVM内存分哪几个区,每个区的作用是什么?
热门文章
- 5万字长文!SpringBoot 操作 ElasticSearch 详解
- Dubbo源码分析(三) -- Dubbo的服务发现源码深入解析4万字长文
- 微信小程序中通过Basic Auth传递token
- 计算机任务计划程序已损坏,win7系统弹出任务计划程序窗口显示该任务映像损坏或已篡改0x80041321错误代码的解决方法...
- Oracle日期格式转换 to_date,to_char,to_timetamp 相互转换
- 一些程序中常出现的英文符号的读法
- 力扣(441.26)补8.24
- 游戏机生产厂家不朽的神迹碎片系统详细攻略心得
- linux中lockf的例子,小何讲Linux: 文件锁及其实例
- 《Wireshark数据包分析实战(第2版)》目录—导读