索引图象隐写术

文章目录

  • 1.索引图像
  • 2.基于索引图像的隐写术
  • 3.现有索引图象隐写术
  • 4.matlab实现Fridrich
    • 隐写函数
    • 提取函数
    • 隐写测试
  • 5.参考资料

1.索引图像

索引图像包含一个调色板和一个索引板,每个像素值都由一个(索引值->色彩值)表示,常见的基于索引的图象格式有gif和8位的BMP图像。

2.基于索引图像的隐写术

基于索引图象的隐写术大抵分为两类,一是对调色板进行隐写,这种方法不会使图片有较大的色彩跳变,但缺点是容量较小;另一类是对索引版进行隐写,这种方法弥补了前者容量较小的缺点但载体图片容易产生较大的色彩跳变。

3.现有索引图象隐写术

隐写算法 简单介绍
Gifshuffle:调色板排序隐藏 利用调色板的顺序来隐藏信息
EZstego:有序调色板下索引板LSB 基于某种距离准则对调色板排序降低索引版LSB出现色彩跳变的可能
Fridrich:索引版“LSB” 对索引版做LSB,特殊的是修改索引值为LSB满足要求且颜色与原值相似的索引值。(可行的预处理:最佳奇偶分配密写)
Hide&Seek:
颜色的量化索引调制:

4.matlab实现Fridrich

隐写函数

function [ newdata, newmap ] = FridrichHiding( data,map, msgstr )
newmap = map;
map=uint8(map*256);
newdata = data;
[n,m] = size(data);len = length(msgstr);  %信息的长度
lenstr=uint8(1);
for i = 1:nfor j = 1:mif (lenstr) > lenbreak;endif newdata(i,j) == 0continueend        if rem(newdata(i,j),2) == msgstr(lenstr) lenstr=lenstr+1;continueelsenewdata(i,j) = findpal(map,map(newdata(i,j),:),msgstr(lenstr));lenstr=lenstr+1;endendif lenstr > lenbreak;end
endfunction index = findpal(map, mark , flag)
[n,m]=size(map);
minn=10;
for i = 1:nif rem(i,2)== flagoption=judge(map(i,:),mark);if(option<minn)minn=option;index=i;end    end
endfunction ansum=judge(a,b)
r = double((a(1) - b(1)) / 255);
g = double((a(2) - b(2)) / 255);
b = double((a(3) - b(3)) / 255);
diff = sqrt(r*r + g*g + b*b) / 3;
ansum = 1-diff;

提取函数

function info = ExtractFromSortPallet( newdata ,len )
infostr = zeros(14,8);
[n,m]=size(newdata);
inow=1;
jnow=1;num=0;
for i=1:nfor j=1:mif(newdata(i,j)==0)continueendnum=num+1;infostr(inow,jnow)=rem(newdata(i,j),2);if((inow-1)*8+jnow)==lenbreak;end jnow=jnow+1;if jnow == 9jnow = 1;inow = inow +1;endendif((inow-1)*8+jnow) == lenbreak;end
end
msgasc = bi2de(uint8(infostr));
message = char(msgasc);
message = message';
info = message;end

隐写测试

%隐写部分
im = imread('down.png');
[data, map] = rgb2ind(im, 256);msg='Hello World!';
msgasc = double(msg);
msgstr = de2bi(msgasc,8); %将信息转为一维的二进制串
msgstr=msgstr.';
msgstr=msgstr(:);
len = length(msgstr);  %信息的长度[newdata, newmap] = FridrichHiding(data, map, msgstr);
imwrite(newdata,newmap,'result.bmp');imshow(data, map);title('origin');
figure;
imshow(newdata, newmap);title('stegano');%提取部分
[newdata,newmap]=imread('result.bmp');
[n,m]=size(newmap);
info = ExtractFromSortPallet(newdata,len);
fprintf('The secret info is:%s\n', info);

5.参考资料

[1] 《基于调色板图像的隐写术.ppt》;任德斌

[2] csdn:《Matlab实现简单的GifShuffle算法隐藏信息》、《Matlab实现简单的hide&seek算法隐藏信息》;Spwpun

图像信息隐藏(索引图象)相关推荐

  1. java bmp信息隐藏_BMP图像信息隐藏及检测

    1.实验目的 (1)了解BMP图像文件格式 (2)了解利用BMP图像文件隐藏信息的原理 (3)掌握基于24位真彩色BMP图像的文件信息隐藏方法 2.实验内容 (1)在图像数据后隐藏信息 (2)文件头与 ...

  2. matlab信息隐藏图片,信息隐藏 实验二 BMP 图像信息隐藏

    实验二 BMP 图像信息隐藏 一,实验目的 1,了解BMP图像文件格式 2,了解利用BMP图像文件隐藏信息的原理 3,设计并实现一种基于24位真彩色BMP图像的文件信息隐藏方法. 二,实验环境 1, ...

  3. matlab信息隐藏和提取,使用matlab进行图像信息隐藏和提取

    基于格式的信息隐藏方法通常在文件头与图像数据之间,或图像数据末尾添加秘密信息,具有实现简单,透明性高,隐藏容量大等多个优点:LSB图像信息隐藏算法是将秘密信息隐藏在图像像素数据的低位上来隐藏信息的方法 ...

  4. LSB图像信息隐藏(实现及分析)

    一.LSB图像信息隐藏(python实现) 1.实验目的 将信息图片存入载体图片,并从载体图片中提取出信息图片.具体操作为将信息图片的信息写入载体图片的最低位层(载体图片至少应为信息图片8倍). 2. ...

  5. 基于离散小波变换 (DWT)的图像信息隐藏算法

    离散小波变换 (DWT) 是一种常用于图像信息隐藏的算法.这种算法通过将图像进行小波变换来隐藏信息.在这个过程中,图像被分成不同的尺度和方向的部分,称为小波系数. 具体来说, 首先将图像进行小波分解, ...

  6. python控制台图片_Python实现图像信息隐藏

    Python实现图像信息隐藏 之前学习密码学的时候老师有提到过『信息隐藏』,现在用图像的方法尝试一下.思想是:把信息藏到RGB通道中的B通道,然后利用奇偶性可以恢复过来 原理 从源图中提取文字图像信息 ...

  7. 基于计算全息的半色图像信息隐藏

    基于计算全息的半色图像信息隐藏 简介 光学信息隐藏算法大致可以分为两类. 第一类是基于双随机相位编码的信息隐藏算法,第二类是基于数字全息编码的信息隐藏算法.这两类算法分别利用了双随机编码和全息编码对水 ...

  8. 【图像隐藏】基于DCT、DWT、LHA、LSB的数字图像信息隐藏系统含各类攻击和性能参数附matlab代码

    1 内容介绍 1.1 课题研究的目的和意义 自二十世纪九十年代以来,网络在我们的生活中得到了快速的普及,网络几乎存 在于家家户户中,特别是一些用于交流的软件自诞生以来更是为我们的生活都带来了 极大的便 ...

  9. 图像信息隐藏与解密(OpenCV)

    目录 一.图像隐藏的意义: 二.图像隐藏的原理: 三.示例图片: 四.隐藏信息的过程: 1)读取源图像(将写上需隐藏文字的信息)和载体图像,构造图像矩阵. 2)在源图像中加上水印文字作为待隐藏文字. ...

最新文章

  1. EOS共识机制——DPoS代理权益证明
  2. Python闭包局部变量问题
  3. 电子商务之表示层分析(九)
  4. db first和code first
  5. CG CTF MISC Remove Boyfriend
  6. 佳能c3320怎么设置接收方_入门级单反相机佳能800D是否值得买?在我看来价格决定一切...
  7. -bash: mysql: command not found解决方法(zabbix监控mysql失败)
  8. # 根据三边求角度_小升初数学必学的10种图形求面积法,你家娃都会了吗?
  9. 处理页面动态加载数据
  10. python网络爬虫(一):网络爬虫科普与URL含义
  11. javascript中 try catch finally 的使用
  12. EMS设置发送连接器和接收连接器邮件大小
  13. 常见驱动程序相关知识
  14. keeplive安装部署
  15. 音频处理——解析PCM格式实例(音量调控)
  16. 华硕ARMOURY CRATE奥创安装/风扇快捷键问题
  17. akuna capital oa
  18. 自动批量多渠道打包(腾讯VasDolly、美团walle),分渠道更新
  19. vue底部跳转_Vue实现回到顶部和底部动画效果
  20. TabTransformer:用于表格数据的Transformer

热门文章

  1. H.266/VVC技术学习:算术编码
  2. 直播预告|ICML专场最后一场啦!来蹲守直播间呀
  3. MySQL数据库中where条件查询(比较运算符查询、逻辑运算符查询、模糊查询、范围查询、空判断查询)
  4. 古代银票里的加密知识
  5. pinta(centos7画图软件)
  6. iphone连电脑服务器未响应,今天要闻iphone8无限转圈黑屏强制关机没反应(苹果电脑开不了机黑屏)...
  7. 电影网站 php asp,moviewebsite 这是一个电影网站的源码,基于asp技术实现.仅供交流学习 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  8. word文档最上面有一条不是页眉的线
  9. 中秋节的特别礼物----属于程序员的专有浪漫
  10. 内网安全,站在十年的路口