资源描述:
《lec4-基于调色板的隐写术.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4讲基于调色板图像的隐写术任德斌四川大学电子信息学院主要内容索引图像介绍基于索引图像的主要隐藏算法对调色板排序EZstego方法颜色的量化索引调制2调色板图像格式和存储表示基于调色板的图像使用特定颜色空间的一个颜色子集为图像上色,它包括两个部分:调色板和实际的图像(索引)数据。实际的图像数据保存每个像素的调色板索引而非颜色值。调色板类图像中最常用的有GIF(GraphicsInterchangeFormat)图像和索引类BMP图像。GIF格式采用无损压缩技术,普遍适用于图表,按钮等只需少量颜色的图像。3[B,map]=
2、imread('lena-ind.bmp');索引图像4调色板的概念调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示;图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。如某像素值为1,则表示该颜色为调色板的编号为1的颜色。调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。不同的图像有不同的调色板。5索引图像索引图像是一种把像素值直接作为RGB调色板下标的图像。一幅索引图包含一个数据矩阵data和一个调色板矩阵map,map矩阵总是一个m×3的双精度类型矩阵(m表示颜色数目)
3、。map矩阵的每一行指定一个颜色的红、绿、蓝颜色分量。索引图像可以把像素值直接映射为调色板数值,每一个像素的颜色使用data的数值作为map的下标来获得:数值1表示map的第一行,数值2表示map的第二行,依此类推。6索引图像举例map=[1,0,0;0,1,0;0,0,1];A=ones(64);imshow(A,map)imshow(A+1,map)imshow(A+2,map)7RGB图像转化为索引图像函数rgb2ind的主要用法:[data,map]=rgb2ind(rgbimage,tol)或[data,map]=r
4、gb2ind(rgbimage,n)tol是一个(0,1)区间的实数,转换后的图像色彩数量不大于(floor(1/tol)+1)^3。n是一个[0,65535]的整数,直接表示转换后的索引图的色彩数量。8一个直接的想法能否对索引矩阵直接使用LSB?为什么?做实验9实验直接把秘密信息嵌入到gif图像索引数据的LSB,并观察效果。可以采用不同容量的嵌入,如30%,50%,70%,100%一个示意代码:[im,map]=imread('garfield3.gif');[l1,l2]=size(im);r=uint8(round(r
5、and(l1,l2)));im2=bitand(im,254);em=bitor(im2,r);subplot(1,2,1);imshow(im,map);title('原始图像');subplot(1,2,2);imshow(em,map);title('伪装图像');10实验结果11原因由于调色板并不要求有任何的排序,故调色板中相邻位置对应的颜色不一定具有视觉的相似性。因此,简单的修改图像数据的LSB,可能会导致颜色的跳跃变化。12方法一:修改调色板的LSB对调色板中的颜色向量的LSB修改。对颜色向量c的轻微改变(最低比特位)
6、可i以不引起HVS的察觉。隐藏容量很小:3×N13方法二:对调色板排序用调色板的排序方式对信息进行编码。在图像的存储中,调色板不需要以任何方式排序,因此在以调色板保存颜色时,可以选择对信息进行编码。因为有N!个不同的方式对调色板进行排序,所以可以用来对一个短信息进行编码。GifShuffle软件使用该方法。对于256色的调色板可以嵌入的消息位数为:168414索引图像举例map=[1,0,0;0,1,0;0,0,1];A=ones(64);imshow(A,map)imshow(A+1,map)imshow(A+2,map)1
7、5基于调色板排序的例子要保持图像不变,能不能只把调色板的顺序进行变换?map2=map;map2(1,:)=map(2,:);map2(2,:)=map(1,:);imshow(A,map2);显然不能!B=A+1;imshow(B,map2);16基于调色板排序的例子(续)图像[A,map]中能嵌入几位信息?map可以有多少种排序?不同的排序代表什么含义?这取决于不同的算法。[A2,map2]=SortPalletHiding(A,map,1);imshow(A2,map2);msg2=ExtractFromSortP
8、allet(map2);[A3,map3]=SortPalletHiding(A,map,11);17基于调色板排序的思想先定义颜色的顺序;再定义调色板的顺序;把所有的调色板按照从小到大的顺序排列成一