📄 program.m
字号:
%将水印图像按最不重要位(LSB)方法嵌入到载体图像中,在把水印从载体图像中提取出来
%注:整个算法分为水印嵌入部分和水印提取部分。
clc;
clear;
% 处理隐写图像
file_name='copyright.bmp';
mark=imread(file_name);
mark=rgb2gray(mark);
mark=round(double(mark)/255);
%显示水印图像
subplot(2,2,1),imshow(mark,[]),title('隐写图像');
% 读入载体图像
file_name='lena.bmp';
cover=imread(file_name);
subplot(2,2,2),imshow(cover,[]),title('载体图像');
%获取图像大小
[m,n]=size(cover);
[r,c]=size(mark);
%隐写嵌入算法
i = 1;j = 1;ii = 1;jj = 1;p = r*c;
while p~=0
cover(i,j) = bitset(cover(i,j),1,mark(ii,jj));
jj = jj+1;
j = j+1;p = p-1;
if jj == c+1
ii = ii+1;jj = 1;
end
if j == n+1
i = i+1;j = 1;
end
end;
subplot(2,2,3),imshow(cover,[]),title('含隐写信息图像');
imwrite(cover,'stego_cover.bmp','bmp');
file_name='stego_cover.bmp';
newcover=imread(file_name);
A = zeros(r,c);
[m,n] = size(newcover);
i = 1;j = 1;ii = 1;jj = 1;p = c*r;
while p~=0
A(ii,jj) = bitget(newcover(i,j),1);
jj = jj+1;
j = j+1;p = p-1;
if jj == c+1
ii = ii+1;jj = 1;
end
if j == n+1
i = i+1;j = 1;
end
end;
subplot(2,2,4),imshow(A,[]),title('提取的隐写信息图像');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -