1.程式設計實現emd魔術矩陣。
2.讀取載體影象並設計秘密資訊。
3.設計並實現emd資訊隱藏演算法,將秘密資訊嵌入載體影象中 。
4.提取嵌入的秘密資訊。
%% 實現emd魔術矩陣
n=256;
m5=zeros(5,5);%先生成5*5的
for i=1:5
m5(1,i)=i-1;
m5(2,i)=mod(i+2,5);
m5(3,i)=mod(i+5,5);
m5(4,i)=mod(i+3,5);
m5(5,i)=mod(i+1,5);
endr=ceil(n/5);
c=ceil(n/5);
mag=repmat(m5,r,c);%平鋪
mag=mag(1:n,1:n);%只需要256*256的矩陣
得到如下的矩陣
%% 讀取載體影象
cover=imread('9.bmp');
subplot(221),imshow(cover),title('載體影象');
%% 生成5進製的秘密資料
rc=100;
data=imread('7.bmp');
data=data(1:rc,1:rc);%取左上角rc*rc的矩陣
ori_data=data;
subplot(222),imshow(data),title('擷取的影象');
data=dec2base(data,5);%畫素轉5進製
data=data';
data=data(:);%轉置之後再轉成列向量
data=str2num(data);
len=numel(data);%秘密資料長度
%% 嵌入秘密資料
num=numel(cover);%載體畫素個數
stegoi=cover;
k=1;
for i=1:2:num
if k>=len
break;
endrow=stegoi(i);
col=stegoi(i+1);
if mag(row+1,col)==data(k)
stegoi(i)=row+1;
elseif mag(row-1,col)==data(k)
stegoi(i)=row-1;
elseif mag(row,col+1)==data(k)
stegoi(i+1)=col+1;
elseif mag(row,col-1)==data(k)
stegoi(i+1)=col-1;
endk=k+1;
endsubplot(223),imshow(stegoi),title('載密影象');
%% 提取秘密資料
exdata=zeros(len,1);
k=1;
for i=1:2:num
if k>=len
break;
endrow=stegoi(i);
col=stegoi(i+1);
exdata(k)=mag(row,col);
k=k+1;
endif data==exdata
disp('提取的秘密資料與原秘密資料一致')
else
disp('提取的秘密資料與原秘密資料不一致')
end%% 根據提取的資料恢復出影象
exdata=reshape(exdata,4,rc*rc);
dec_data=zeros(1,rc*rc);
for i=1:rc*rc
dec_data(i)=exdata(1,i)*5^3+exdata(2,i)*5^2+exdata(3,i)*5+exdata(4,i);
enddec_data=uint8(reshape(dec_data,rc,rc));
subplot(224),imshow(dec_data),title('根據提取資料得到的影象');
if ori_data==dec_data
disp('提取的影象與原影象一致')
else
disp('提取的影象與原影象不一致')
數字水印 基於龜殼魔術矩陣的資訊隱藏演算法
程式設計實現龜殼魔術矩陣 讀取載體影象並設計秘密資訊 設計並實現龜殼資訊隱藏演算法,將秘密資訊嵌入載體影象中 提取嵌入的秘密資訊。程式設計實現龜殼魔術矩陣 生成龜殼矩陣 turtmat zeros 256 turtmat 1,1 6 第一行 for j 2 256 turtmat 1,j mod t...
數字水印學習教程
目 錄 1 程式介面.5 1.1 程式 5 1.2 執行結果及說明.18 2 空域操作.19 2.1 分層顯示.19 2.1.1 程式 19 2.1.2 執行結果及說明.20 2.2.位值設定.22 2.2.1 實現.22 2.2.2 執行結果及說明.25 2.3.二值化.26 2.3.1 實現.2...
STDM 數字水印演算法
stdm演算法實現主函式 shuanholmes outlook.com clc clear close all warning off d 200 量化步長 type 1 平行投影 2 均勻 3 隨機 vp ones 8,1 均勻投影向量 vp vp.sqrt 8 vp randn 8,1 vp ...