基于DCT变换的信息隐藏(数字水印)嵌入算法的设计(Matlab)
来源:互联网 发布:家庭影院网络播放器 编辑:程序博客网 时间:2024/05/21 10:03
<div class="article_content" id="article_content"><p>隐藏信息嵌入程序,老师写的!</p>
<p> </p>
<p>%------------------------------------------------------------------%<br>% 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计____2007.06.19 %% %% %<br>%-----------------------------------------------------------=------%<br>clear all;<br>close all;<br>clc<br>%-----------------读入"W",并进行WPP处理---------------------<br>wm0=imread('watermark.bmp');<br>% wm0=imresize(wm0,[64 64]);<br>[Mm,Nm]=size(wm0) ; %计算水印图象的高度和宽度<br>n=Mm*Nm;<br>subplot(131)<br>imshow(wm0);<br>title('my watermark');<br>wm=double(wm0);<br>for i=1:Mm<br> for j=1:Nm<br> if wm(i,j)==0<br> wm(i,j)=-1;<br> end<br> end<br>end </p>
<p>%-----------------------读入"C",并进行CPP处理--------------------------<br>% cover_image=imread('cameraman.tif');<br>cover_image=imread('lena.bmp');<br>[Mc,Nc]=size(cover_image); %计算载体图象的高度和宽度<br>subplot(132);<br>imshow(cover_image);<br>title('my coverimage');<br>cover_image=double(cover_image);%读入原始宿主图象,并转换为双精度数组</p>
<p>%------------------分块DCT变换,嵌入水印----------------------------</p>
<p>%设置水印嵌入强度<br>% k=369; <br>k=70; <br>%设置嵌入位置<br>x=3; <br>y=5;<br>%设定图象的分块大小为8*8<br>blocksize=8; <br>c=Mc/blocksize;<br>d=Nc/blocksize;<br>m=c*d;%计算图象划分的图象块</p>
<p>%判断载体图像尺寸是否适合水印大小<br>if n>m<br> error('^_^ Dear classmates~~~~~~The watermark is too large to be imbeded into the coverimage,hehe~~~');<br>end</p>
<p>%分块DCT变换,嵌入水印<br>for j=1:c<br> for i=1:d<br> dct_block=dct2(cover_image((1+(j-1)*8):j*8,(1+(i-1)*8):i*8));<br> dct_block(x,y)=k*wm(j,i);<br> watermarked_image((1+(j-1)*8):j*8,(1+(i-1)*8):i*8)=idct2(dct_block);<br> end<br>end<br>%------------------------------------------------------------------</p>
<p>%生成并输出嵌入水印后的图象<br>imwrite(uint8(watermarked_image),'watermarked_image.bmp','bmp');<br>%显示嵌入水印后的图象<br>subplot(133);<br>imshow(uint8(watermarked_image))<br>title('watermarkedImage') </p>
<p> </p>
<p>隐藏信息提取程序,我写的!</p>
<p>clear all ;<br>close all ;<br>clc</p>
<p>%定义一个空空间来存储提取的水印<br>wm_image=zeros(32,32);<br>% subplot(122);<br>% imshow(wm_image);</p>
<p>%read the marked image and transfer it to double precise<br>%-------------------------------------------------------<br>watermarked_image=imread('watermarked_image.bmp');<br>[M_marked,N_marked]=size(watermarked_image);<br>subplot(121);<br>imshow(watermarked_image);<br>title('The marked image') ;<br>watermarked_image=double(watermarked_image);</p>
<p>blocksize=8;<br>k=1/70;<br>x=3;<br>y=5;</p>
<p>c=M_marked/blocksize;<br>d=N_marked/blocksize;</p>
<p>for j=1:c<br> for i=1:d<br> dct_markedblock=dct2(watermarked_image((1+(j-1)*8):j*8,(1+(i-1)*8):i*8));<br> if k*dct_markedblock(x,y)>0<br> wm_image(j,i)=1;<br> else<br> vm_image(j,i)=0;<br> end<br> end<br>end<br> subplot(122);<br> imshow(wm_image);<br> title('mark image');<br> <br> imwrite((wm_image),'MYwm_image.bmp','bmp');</p>
</div>
0 0
- 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计(Matlab)
- 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计(Matlab)
- 【matlab】基于DCT变换的数字水印
- 基于的DCT水印算法实现
- 数字水印嵌入的matlab程序
- 基于离散余弦变换的数字水印
- 基于MATLAB的数字水印技术研究
- 基于MATLAB的数字水印技术研究
- 基于Matlab的数字水印技术研究
- 基于鲁棒性的数字水印的嵌入与提取
- 基于小波变换的数字水印技术研究
- 基于小波变换的数字水印研究
- 基于Matlab的DCT(离散余弦变换)的JPEG图像压缩
- DCT域自适应混沌加密的二值图像数字水印算法
- DCT域自适应混沌加密的二值图像数字水印算法
- 图片嵌入隐藏-大容量的信息隐藏算法
- DCT变换的学习
- DCT 变换(几个简单的MATLAB的例子)
- (5)caffe总结之激活层(Activiation Layers)及参数
- AS上jni相关配置
- LightOJ
- 2017/4/20
- 基础算法笔试题:小孩数数问题(数三退一)
- 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计(Matlab)
- 《连载 | 物联网框架ServerSuperIO教程》- 17.集成Golden实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。
- matlab 连通区域 显示 边缘检测显示到原图
- Cookie,Session
- 布林带(BOLL)技术指标
- 微信小程序url参数传递
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
- Python教程精华版(二)
- Backbone 模型