⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmk_2d.m

📁 在二维 RGB 图像中嵌入水印
💻 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 + -