信息隐藏实验报告DCT算法计算机数据结构与算法_计算机-数据结构与算法.pdf
信息隐藏技术 实验报告 实验 2:DCT信息隐藏实验 杭州电子科技大学 网络空间安全学院 一、实验目的 1.主要内容 对图像进行 DCT信息隐藏实验。2.基本要求 要求学生能够将信息嵌入图像并成功提取出来。二、实验内容及实现过程步骤 1.水印嵌入算法 应用 DCT算法实现水印嵌入。读入原始图像和水印,将水印图像二值化,将原图分成若干个 8X8的矩阵,分别做 DCT变换,然后将(3,3)位置的像素点根据水印上相同位置的像素置为 10 和-10,(1 换为 10,0 换为-10),进行 DCT反变换(idct())得到嵌入水印后的图像;原始图像 水印图像 嵌入水印的图像 2.水印提取算法 DCT算法实现水印/Logo 的提取 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提将嵌入水印的图像分为若干个 8X8像素矩阵,分别进行 dct 变换,取出(3,3)位置的像素值,进行判断,若大于 0 则将水印图像相同位置处像素赋值为 1,小于0 赋值为 0,即可从嵌入图像中提取出水印图像;从嵌入水印的图像中提取的水印 三、实验结果分析 1.不可感知性 原始图像与水印嵌入后图像的对比(PSNR)。读入原图和嵌入水印后的图像,使用 psnr()函数,得到输出结果为39.3781;分析:因为结果大于 35,所以嵌入的水印不可感知度还是很高的 2.鲁棒性 水印嵌入后图像经过噪声、压缩等处理后水印的提取效果。修改代码,使其将处理结果输出为文件格式,得到如下结果 噪声处理 imnoise(wp,gaussian,0,0.0002);息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提 imnoise(wp,gaussian,0,0.002);压缩处理 imwrite(wp,123.jpg,quality,50);息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提 四、实验小结 邢征宇:水印的嵌入和提取 刘煜程:不可感知性的分析 单志晗:加造分析 梁经纬:压缩分析 实验结论:DCT变换在数字水印中的应用很有效,具有难以识别和分析的特性,相对于 LSB算法,它是在频域上嵌入水印,具有更高的隐秘性 理解:在实验过程中,通过查找资料,发现了被嵌入的水印不只局限于图片,文字信息和其他数字信息同样可以作为水印被嵌入到图像中,让我们发现了数息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提字水印作为信息加密和信息认证技术中的强大之处,加深了我们对信息隐藏技术的理解。【实验代码】clear;%图片加水印,提取出水印%M=512;%原图像长度 N=64;%水印图像长度 K=8;%8x8 的分块 I=zeros(M,M);%创建一个 MxM 矩阵,元素全是 0 J=zeros(N,N);BLOCK=zeros(K,K);%显示原图像 subplot(2,4,1);%显示多幅图像,在第一个位置显示%显示水印图像 I=imread(lena.bmp);%将 lena.bmp 读入 I 中 imshow(I);%显示图像 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提title(原始公开图像);%标题 subplot(2,4,2);J2=imread(logo.bmp);thresh=graythresh(J2);%自动确定二值化阈值;J=im2bw(J2,thresh);%对图像自动二值化即可。imshow(J);title(水印图像);%水印嵌入算法 for p=1:N%从 1 到 64 循环 for q=1:N%从 1 到 64 循环 x=(p-1)*K+1;y=(q-1)*K+1;BLOCK=I(x:x+K-1,y:y+K-1);%取相应元素保存到 BLOCK 中 BLOCK=dct2(BLOCK);%二维离散余弦变换 if J(p,q)=0%如果元素为 0 BLOCK(3,3)=-10;else 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提BLOCK(3,3)=10;end BLOCK=idct2(BLOCK);%反二维离散余弦变换 I(x:x+K-1,y:y+K-1)=BLOCK;end end%显示嵌入水印后的图像 subplot(2,4,3);imshow(I);title(嵌入水印后的图像);imwrite(I,watermarked1.bmp,bmp);%保存成 watermarked.bmp wp=imread(watermarked1.bmp);%水印图像%提取水印算法 for p=1:N for q=1:N x=(p-1)*K+1;y=(q-1)*K+1;息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提BLOCK=wp(x:x+K-1,y:y+K-1);%赋给 BLOCK2 元素 BLOCK=dct2(BLOCK);%对其本身进行反二维离散余弦变换 if BLOCK(3,3)0 W(p,q)=1;else W(p,q)=0;end end end%显示提取的水印 subplot(2,4,4);imshow(W);title(从含水印图像中提取的水印);%水印图片加噪声 subplot(2,4,5);w1=imnoise(wp,gaussian,0,0.0002);imshow(w1);息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提title(加噪声);%噪声图片提取水印 wp1=w1;%水印图像 for p=1:N for q=1:N x=(p-1)*K+1;y=(q-1)*K+1;BLOCK=wp1(x:x+K-1,y:y+K-1);%赋给 BLOCK2 元素 BLOCK=dct2(BLOCK);%对其本身进行反二维离散余弦变换 if BLOCK(3,3)0 W(p,q)=1;else W(p,q)=0;end end end%显示提取的水印 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提subplot(2,4,6);imshow(W);title(从加噪声中提取的水印);%压缩测试 imwrite(wp,123.jpg,quality,50);subplot(2,4,7);imshow(123.jpg);title(压缩为 jpg);%从压缩图像中提取水印 wp=imread(123.jpg);%水印图像%提取水印算法 for p=1:N for q=1:N x=(p-1)*K+1;y=(q-1)*K+1;BLOCK=wp(x:x+K-1,y:y+K-1);%赋给 BLOCK2 元素 BLOCK=dct2(BLOCK);%对其本身进行反二维离散余弦变换 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提if BLOCK(3,3)0 W(p,q)=1;else W(p,q)=0;end end end%显示提取的水印 subplot(2,4,8);imshow(W);title(从 jpg 中提取的水印);【运行效果】息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提 息隐藏实验基本要求要求学生能够将信息嵌入图像并成功提取出来二实验内容及实现过程步骤水印嵌入算法应用算法实现水印嵌入读入原始图像和水印将水印图像二值化将原图分成若干个的矩阵分别做变换然后将位置的像素点根据提取算法算法实现水印的提取将嵌入水印的图像分为若干个像素矩阵分别进行变换取出位置的像素值进行判断若大于则将水印图像相同位置处像素赋值为小于赋值为即可从嵌入图像中提取出水印图像从嵌入水印的图像中提取的水印果为分析因为结果大于所以嵌入的水印不可感知度还是很高的鲁棒性水印嵌入后图像经过噪声压缩等处理后水印的提取效果修改代码使其将处理结果输出为文件格式得到如下结果噪声处理压缩处理四实验小结邢征宇水印的嵌入和提