📄 wmk_2d.m
字号:
%--------------------------------------------------------------------------
% filename: wmk_2d
% function: 在二维 RGB 图像中嵌入 lenna 图像
% data : 2005.8.10
%--------------------------------------------------------------------------
load lena_dither; % 输入水印数据,变量为A
subplot(2,2,1),imshow(A,[]); title('水印序列')% 显示之前要化为 0~1 之间,嵌入水印以后图像
I = imread('e:\photo\wsyj.jpg');
subplot(2,2,2),imshow(I,[]); title('真彩图像')% 显示之前要化为 0~1 之间,嵌入水印以后图像
I=imresize(I,[512 512]); % 改变图像的大小
I = rgb2gray(I);
I=double(I); % 转换数据格式
subplot(2,2,3),imshow(I,[]); title('灰度图像')% 显示之前要化为 0~1 之间,嵌入水印以后图像
%**************************************************************************
% 改变 I 中的像素值,加入水印
%**************************************************************************
[m n]=size(I);
for i=1:m*n
a=bitget(I(i),3);
b=bitget(I(i),5);
if bitxor(a,b)~=A(i)
I(i)=bitset(I(i),3,bitcmp(a,1));
end
end
subplot(2,2,4),imshow(I,[]); title('加入水印后的图像')% 显示之前要化为 0~1 之间,嵌入水印以后图像
%**************************************************************************
% 根据I(i)直接提取水印
%**************************************************************************
c=zeros(m,n);
for k=1:m*n
a=bitget(I(k),3);
b=bitget(I(k),5);
c(k)=bitxor(a,b);
end
%c=reshape(c,m,n);
figure,imshow(c,[]); % 显示之前要化为 0~1 之间
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -