matlab加入水印提取水印函式

2021-08-14 07:30:05 字數 2030 閱讀 4589

% m=256;  %原影象長度

% n=60;   %水印影象長度

%  k=8; 

% i=zeros(m,m);

% ii=zeros(k,k);

% b=zeros(m,m);

% idct=zeros(k,k);

% d=zeros(m,m);

%讀取原影象

%顯示原影象

imshow(i);

title('原影象');

subplot(2,2,2);

%顯示原影象

imshow(ir);

title('水印影象');

m=size(i,1);

n=size(ir,1);

k=m/n;

% m=1;

% n=1;

%嵌入水印

for m=1:n

for n=1:n

x=(m-1)*k+1;

y=(n-1)*k+1;

ii=i(x:x+k-1,y:y+k-1);%將原圖分成8*8的子塊

idct=dct2(ii);%對子塊進行dct變換

xidct=idct;

%       if x==1&y==1

%           alfa=0.02;

%       else

alfa=0.2;

%       end 

b=idct+alfa*double(ir(m,n));

%         b=idct;

bidct=idct2(b);%進行dct反變換

xx=dct2(bidct);

j(x:x+k-1,y:y+k-1)=bidct;

endend

subplot(2,2,3);

j=uint8(j);

imshow(j);%顯示嵌入水印後的影象

title('加水印影象');

% imwrite(j,'c:\users\administrator\desktop\addshuiyin.bmp');

%提取水印

j=imread('c:\users\administrator\desktop\addshuiyin.bmp');

ir=imread('c:\users\administrator\desktop\shuiyin.bmp');

m=size(j,1);

n=size(ir,1);

k=m/n;

k1=8;

for m=1:n

for n=1:n

x=(m-1)*k1+1;

y=(n-1)*k1+1;

ii=i(x:x+k1-1,y:y+k1-1);%將原圖分成8*8的子塊

idct=dct2(ii);%對子塊進行dct變換

jj=j(x:x+k-1,y:y+k-1);%將加水印圖分成8*8的子塊

jdct=dct2(jj);%對子塊進行dct變換

jrr=jdct(1,1)-idct(1,1);

bidct=idct2(jrr);%進行dct反變換

if bidct>0.01

jr(m,n)=1;

else

jr(m,n)=0;

endend

endsubplot(2,2,4);

jr=logical(jr);

imshow(jr);%顯示嵌入水印後的影象

title('提取的水印');

imwrite(jr,'c:\users\administrator\desktop\tiqushuiyin.bmp');

Matlab中如何加入函式

如何將libsvm加入到matlab函式庫中 1 在matlab中命令視窗中pathtool,出現以下視窗 2 選擇你所加入的是資料夾還是子資料夾,加入後儲存即可。在matlab中加入斷點的方法 在matlab中按f12加入斷點 按f5可以執行到斷點出 按f10n單步執行 按f11進入函式內部執行 ...

matlab中怎樣加入凝視

1 方法一 選中你要加凝視的內容,然後選擇工具選單 text comment 就能夠了,假設要把凝視變為語句,相同選中要轉變的語句,然後用滑鼠選擇 text uncomment 就能夠了。用鍵盤的快捷鍵是 ctrl r 或者選中你要加凝視的內容,右擊滑鼠選擇 comment 假設要把凝視變為語句,相...

將C 裡的Mat矩陣儲存並由matlab提取分析

c 本身只支援 xml yml 的資料檔案讀寫功能,並且其xml檔案與構建網頁資料所用的xml檔案格式不一致,在matlab中無法讀取。我們可以通過以下方式將資料儲存為txt檔案,再匯入到matlab中。1.c 儲存mat矩陣 mat sal saliency.saliency im ofstrea...