找回密码
 注册
关于网站域名变更的通知
查看: 494|回复: 3
打印 上一主题 下一主题

基于matlab Laguerre变换图像隐藏

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-7-1 10:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

  M' T' O% q9 ^一、源代码) g* ~" ?/ J- v0 Q: O! u: \/ T

+ {; _8 v( R# H) `7 i
  • %Main embedding code of the steganography method
  • %It is written by:Souradeep Mukhopadhyay
  • %Mail:souradeepmukhopadhyay99@gmail.com
  • %Phone:6291028852
  • clc;
  • clear all;
  • my_image=imread('Picture 13623416.jpg');
  • secret_image=imread('Picture 13623416.jpg');
  • headerlength=32;
  • [R,C]=size(my_image);
  • % [R1,C1]=size(secret_image);
  • [s,k]=size(secret_image);
  • watermarklength=s*k;
  • slength=uint8(headerlength/2);
  • klength=uint8(headerlength-slength);
  • slengthbits=dec2bin(s,slength);
  • slengthbits=reshape(slengthbits',[],1);
  • klengthbits=dec2bin(k,klength);
  • klengthbits=reshape(klengthbits',[],1);
  • sizebits=uint8(zeros(headerlength,1));
  • for j=1:uint8(headerlength)
  •     if(j<=slength)
  •         sizebits(j)=uint8(slengthbits(j)-48);
  •     else
  •         sizebits(j)=uint8(klengthbits(j-klength)-48);
  •     end
  • end
  • actualbits=dec2bin(secret_image);
  • actualbits=reshape(actualbits',[],1);
  • totalnoofbitstobeembedded=watermarklength*8+headerlength;
  • for i=1:totalnoofbitstobeembedded
  •     if(i<=headerlength)
  •         watermarkbits(i)=uint8(sizebits(i));
  •     else
  •         watermarkbits(i)=uint8(actualbits(i-headerlength)-48);
  •     end
  • end
  • blocksizeR=1;
  • blocksizeC=3;
  • wholeBlockRows = ceil(R / blocksizeR);
  • wholeBlockCols = ceil(C / blocksizeC);
  • % blocksize=2;
  • % wholeBlockRows = floor(R / blocksize);
  • % wholeBlockCols = floor(C / blocksize);
  • % padding if the image is not divisible by block size
  • if rem(R,blocksizeR)==0
  •     effectiveblocksizeR=rem(R,blocksizeR);
  • else
  •     effectiveblocksizeR=blocksizeR-rem(R,blocksizeR);
  • end
  • if rem(C,blocksizeC)==0
  •     effectiveblocksizeC=rem(C,blocksizeC);
  • else
  •     effectiveblocksizeC=blocksizeC-rem(C,blocksizeC);
  • end
  • my_image = padarray(my_image, [effectiveblocksizeR effectiveblocksizeC], 'replicate','pre');
  • %imwrite(my_image,'E:\Dr. Ram Sarkar\MATLAB_SKG_PROG\ori_resize\lena512_gray_pad.bmp');
  • [R,C]=size(my_image);
  • bin=zeros(R,C,'uint8');
  • flag=0;
  • traversedbit=1;
  • traversedbit=uint32(traversedbit);
  • noOfbitEmbedded=[3 2 4];
  • % loop over all rows and columns
  • for i=1:wholeBlockRows
  •     for j=1:wholeBlockCols
  •         % get the block
  •         one_block=my_image((i-1)*blocksizeR+[1:blocksizeR],(j-1)*blocksizeC+[1:blocksizeC]);
  •         %Transform the block
  •         tn_one_block=uint32(LT(uint32(one_block)));
  •         backup_tn_one_block=tn_one_block;
  •         for m=1:blocksizeR
  •             for n=1:blocksizeC
  •                 freqcom=tn_one_block(m,n);
  • %                 backupfreqcom=freqcom;
  •                 for l=1:noOfbitEmbedded(m*n)
  •                     if(traversedbit<=totalnoofbitstobeembedded)
  •                         if watermarkbits(traversedbit)==1
  •                             freqcom=bitor(freqcom,(2^(l-1)));
  •                         else
  •                             freqcom=bitand(freqcom,bitcmp((2^(l-1)),'uint16'));
  •                         end
  • %                         tn_one_block(m,n)=freqcom;
  •                         traversedbit=traversedbit+1;
  •                     else
  •                         flag=1;
  •                         break;
  •                     end
  •                     if(flag)
  •                         break;
  •                     end
  •                 end
  •                 if(flag)
  •                     break;
  •                 end
  •                 tn_one_block(m,n)=freqcom;
  •             end
  •         end
  •          tn_one_block(1,1)=frequencyAdjustment(backup_tn_one_block(1,1),tn_one_block(1,1),noOfbitEmbedded(1));
  •          tn_one_block(1,2)=frequencyAdjustment(backup_tn_one_block(1,2),tn_one_block(1,2),noOfbitEmbedded(2));
  •          tn_one_block(1,3)=frequencyAdjustment(backup_tn_one_block(1,3),tn_one_block(1,3),noOfbitEmbedded(3));
  •          In_one_block=uint32(ILT(int32(tn_one_block)));
  •         for m=1:blocksizeR
  •             for n=1:blocksizeC
  •                 pixelval=In_one_block(m,n);
  •                 bin((i-1)*blocksizeR+m,(j-1)*blocksizeC+n)=pixelval;
  •             end
  •         end
  •     end
  • end
  • imshow(bin);
  • % PSNR=psnr(my_image,bin)
  • %imwrite(bin,'E:\Dr. Ram Sarkar\MATLAB_SKG_PROG\stego_resize\lena512_gray_stego.bmp');. M9 e, b4 P9 I* ~6 t1 ~) P6 ?

6 t" ]1 Q7 t8 \' `
4 j# ^* Z; N3 V0 C4 T' m二、运行结果
" G% Q6 W0 M" h3 E1 V2 G
7 |; W% H( N; @5 R  \ - h" G/ g/ Z7 J, s- K) U8 R& t

& A/ o0 F& [' v( p) a0 k6 E

该用户从未签到

2#
发表于 2021-7-1 13:38 | 只看该作者
基于matlab Laguerre变换图像隐藏

该用户从未签到

3#
发表于 2021-7-1 13:42 | 只看该作者
基于matlab Laguerre变换图像隐藏

该用户从未签到

4#
发表于 2021-7-1 13:42 | 只看该作者
基于matlab Laguerre变换图像隐藏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-11 04:39 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表