![]() |
誰能幫我解答一下,此藏浮水印的matlab程式
各位好,這是我在網路上找到的一份浮水印的程式碼,但是不太了解程式的意思,我最想知道此matlab程式所藏浮水印的位置,還有浮水印為什麼要使用一階小波分解呢??而原始影像用2階小波轉換??請各位大大,如果知道可否幫我解答一下,拜託你們了,我很急著知道,謝謝您們。
lena=imread('lena.bmp','bmp'); subplot(2,2,1); imshow(lena); title('原图像'); bict=imread('bict.bmp','bmp'); subplot(2,2,2); imshow(bict); title('水印图像'); lena1=double(lena); bict1=double(bict); [Cwr,Swr]=WAVEDEC2(bict1,1,'haar'); [Cr,Sr]=WAVEDEC2(lena1,2,'haar'); a=0.06; for k=0:1:size(Cr,2)/size(Cwr,2)-1 Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+a*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2); Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+a*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4); Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+a*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2)); end; Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+a*Cwr(1:size(Cwr,2)/4); lena1=WAVEREC2(Cr,Sr,'haar'); output=uint8(round(lena1)); subplot(2,2,3);imshow(output,[]); title('嵌入水印后的图像'); J1=imnoise(output,'salt & pepper',0.04); subplot(2,2,4);imshow(J1);title('加椒盐噪声后的图像'); [Ca,Sa]=WAVEDEC2(lena1,2,'haar'); lena0=imread('lena.bmp','bmp'); lena01=double(lena0(:,:,1)); [Ca1,Sa1]=WAVEDEC2(lena01,2,'haar'); Cwr(1:size(Cwr,2)/4)=(Ca(1:size(Cwr,2)/4)-Ca1(1:size(Cwr,2)/4))/a; bict1=WAVEREC2(Cwr,Swr,'haar'); output=uint8(round(bict1)); figure,subplot(2,2,1); imshow(output,[]);title('提取的水印图像'); |
所有时间均为北京时间。现在的时间是 17:43。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.