91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 123KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-18
  • 語言: Matlab
  • 標(biāo)簽: SNR??PNR??

資源簡介

在matlab2011a中編寫的程序,根據(jù)atpeace童鞋發(fā)布資源中doc文檔理解修改后得到,包含水印圖片和載體圖片。有興趣的可以看看。

資源截圖

代碼片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%圖像水印的LSB算法子程序
%%************************************************************************
%%將水印圖像按質(zhì)量不重要位(LSB)方法嵌入到載體圖像中,再把水印從載體圖像中提取
%%出來
%%注:整個算法分水印嵌入部分和水印提取部分。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%這里算法十分容易理解,嵌入就是將圖像最低位替換為水印信息,提取就是從最低位將信
%%息提取出來,使用了bitset(A1v)將A中最低位替換為v中替代信息及bitget(B1)將
%%B中最低位信息提取出來即是水印信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close?all;
clear?all;
clc;
cd?E:\matlab\lsb_algorithm?%設(shè)置地址

%這里1指代最低位平面(即LSB),若使用8,可以很明顯看到水印信息
bit_position=1;
%..................LSB水印嵌入算法...........................
%?讀入載體圖像
file_name=‘lena_256.bmp‘;
cover_object=rgb2gray(imread(file_name));


%?讀入水印圖像
file_name=‘test2.bmp‘;
message=rgb2gray(imread(file_name));
message=double(message);
message=message./256;
messagec=uint8(message);
message=messagec;


%?確定載體圖像大小
Mc=size(cover_object1);
Nc=size(cover_object2);


%?確定水印圖像大小
Mm=size(message1);
Nm=size(message2);

for?ii=1:Mc
???for?jj=1:Nc
?????????watermark(iijj)=message(mod(iiMm)+1mod(jjNm)+1);
?????????%這里將watermark擴(kuò)大為Mc*Nc大小,有Mc*Nc/(Mm*Nm)塊重復(fù)
???????end
end
watermarked_image=cover_object;%構(gòu)建一個與原圖片相同大小的矩陣用于存儲結(jié)果
for?ii=1:Mc
???for?jj=1:Nc
?????????watermarked_image(iijj)=bitset(watermarked_image(iijj)bit_positionwatermark(iijj));
end
end
imwrite(watermarked_image‘lsb_watermarked.bmp‘‘bmp‘);

%?計算嵌入水印后圖像的PSNR
psnr=PSNR(cover_objectwatermarked_image);
%?計算嵌入水印后圖像的SNR
snr=SNR(cover_objectwatermarked_image);

%?顯示已嵌入水印的圖像
figure;
imshow(watermarked_image[]);
title(‘Watermarked?Image‘)

%···············LSB水印提取算法················
file_name=‘lsb_watermarked.bmp‘;
watermarked_image=imread(file_name);
Mw=size(watermarked_image1);
Nw=size(watermarked_image2);
for?ii=1:Mw
?????for?jj=1:Nw
?????????????watermark(iijj)=bitget(watermarked_image(iijj)bit_position);
?????end
end
watermark=256*double(watermark);

%顯示提取的水印圖像
figure;
imshow(watermark[])
title(‘Recovered?Watermark‘)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????196662??2011-08-02?11:11??lsb\lena_256.bmp

?????文件???????2420??2011-08-02?16:19??lsb\lsb_sub.m

?????文件??????66614??2011-08-02?15:58??lsb\lsb_watermarked.bmp

?????文件???????1945??2011-08-02?16:20??lsb\PSNR.m

?????文件????????104??2011-08-02?16:23??lsb\readme.txt.txt

?????文件???????1077??2011-08-02?15:40??lsb\SNR.m

?????目錄??????????0??2011-08-02?16:20??lsb

-----------?---------??----------?-----??----

???????????????268822????????????????????7


評論

共有 條評論