资源描述:
《matlab图像处理(中)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab图像处理大作业(2014中)火彬TS三.信息隐藏1.实现本章介绍的空域隐藏方法和提取方法。验证其抗JPEG编码能力。可以想见,空域隐藏法无法抗JPEG编码。原因在于量化与反量化的过程中,处于低位的信息被忽略和改变,无法解码得到正确结果。需要隐藏的信息段如下:Itwasthebestoftimes,itwastheworstoftimes,itwastheageofwisdom,itwastheageoffoolishness,itwastheepochofbelief,itwastheepochofincredulity,itwastheseasonofLight,itwa
2、stheseasonofDarkness,itwasthespringofhope,itwasthewinterofdespair,wehadeverythingbeforeus,wehadnothingbeforeus,wewereallgoingdirecttoHeaven,wewereallgoingdirecttheotherway-inshort,theperiodwassofarlikethepresentperiod,thatsomeofitsnoisiestauthoritiesinsistedonitsbeingreceived,forgoodorforevil,in
3、thesuperlativedegreeofcomparisononly.空域隐藏:对输入文段进行DC编码,数据插入到灰度矩阵。代码如下:(Blankc_info.m)function[wid,key]=Blankc_info(A)loadhall.mat;loadJpegCoeff.mat;[row,col]=size(hall_gray);codes='';forc=1:length(A)%DCcodeAif(A(c)==0)DC_row=1;elseDC_row=floor(log2(abs(A(c))))+2;endlen=DCTAB(DC_row,1);forcount=1:
4、lencodes=[codes,num2str(DCTAB(DC_row,count+1))];endcodes=[codes,My_dec2bin(A(c))];endkey=hall_gray;wid=length(codes);row_c=1;col_c=1;forcount=1:widtemp=My_dec2bin(hall_gray(row_c,col_c));temp(length(temp))=codes(count);key(row_c,col_c)=0;if(temp(1)=='0')fornu=1:length(temp)if(temp(nu)=='0')key(r
5、ow_c,col_c)=key(row_c,col_c)-2.^(length(temp)-nu);endendelsefornu=1:length(temp)if(temp(nu)=='1')key(row_c,col_c)=key(row_c,col_c)+2.^(length(temp)-nu);endendendif(col_c==col)col_c=1;row_c=row_c+1;elsecol_c=col_c+1;endendimwrite(key,'conceal.jpg');左图为原图,右图为隐藏信息的图。可见隐藏效果不错,图像基本没有变化。空域解码:需要对DC_rev
6、.m函数稍作修改如下(实现多参数输入,其余不变)functionDC=DC_rev(varargin)T=length(varargin);if(T==2)DC_code=varargin{1};DCTAB=varargin{2};DC=zeros(315,1);elseif(T==3)DC_code=varargin{1};DCTAB=varargin{2};DC=zeros(varargin{3},1);end顶层实现(Blankd_info.m),代码如下:functionA=Blankd_info(wid,key)loadJpegCoeff.mat;loadhall.mat;A
7、=[];codes='';row_c=1;col_c=1;forcount=1:widtemp=My_dec2bin(key(row_c,col_c));codes=[codes,temp(length(temp))];if(col_c==length(key(1,:)))col_c=1;row_c=row_c+1;elsecol_c=col_c+1;endendA=DC_rev(codes,DCTAB,wid);外层函数脚本调用(script