📄 imagehide.m
字号:
%%%%%%%%%%% 载体和秘密图像都是灰度图像 图像大小一样大 %%%%%%%%%%%%%%%
% 一定要找到 置图像低4位是0之后的图像没有太大的变化
% original_carrier:原始的载体图像
% original_secret:原始的秘密图像
% carrier:程序中用到的载体图像
% secret:程序中用到的秘密图像
original_carrier=imread('gray1.bmp'); %图像大小一定要大于秘密图像
original_secret=imread('gray2.bmp');
carrier=original_carrier;
secret=original_secret;
[row,col]=size(carrier);
subplot(2,3,1),imshow(carrier),title('原始的载体图像') %显示原始的载体图像
%%%%%%%%%%% 把载体和秘密图像的低位分别置0,看对图像本身的影响 %%%%%%%%%%%%%%%
%for i=1:row %置载体图像低1位是0
for j=1:col
%carrier(i,j)=bitand(carrier(i,j),254);
end
%end
%figure,imshow(carrier)
%for i=1:row %置载体图像低2位是0
for j=1:col
% carrier(i,j)=bitand(carrier(i,j),252);
end
%end
%figure,imshow(carrier)
%for i=1:row %置载体图像低3位是0
for j=1:col
% carrier(i,j)=bitand(carrier(i,j),248);
end
%end
%figure,imshow(carrier)
%for i=1:row %置载体图像低4位是0
for j=1:col
% carrier(i,j)=bitand(carrier(i,j),240);
end
%end
%figure,imshow(carrier)
%%%%%%%%%%% 实验结束 %%%%%%%%%%%%%%%
for i=1:row %置载体图像低4位是0
for j=1:col
carrier(i,j)=bitand(carrier(i,j),240);
end
end
subplot(2,3,2),imshow(carrier),title('置低4位为0的载体图像') %显示低4位是0的载体图像
subplot(2,3,3),imshow(secret),title('原始的秘密图像') %显示原始的秘密图像
secret=bitand(secret,240); %置秘密图像低4位是0
subplot(2,3,4),imshow(secret) ,title('置低4位为0的秘密图像') %显示低4位是0的秘密图像
secret=bitshift(secret,-4); %把秘密图像高4位右移
for i=1:row %图像隐藏
for j=1:col
carrier(i,j)=bitor(carrier(i,j),secret(i,j));
end
end
subplot(2,3,5),imshow(carrier),title('隐藏后的载体图像')
imwrite(carrier,'d:\imagehide.bmp') %输出隐藏后的图像 到D盘 根目录下
%bmp和jpg的文件大小是不一样的
%%%%%%%%%%%% 提取图像 %%%%%%%%%%%
for i=1:row
for j=1:col
A(i,j)=bitand(carrier(i,j),15);
end
end
A=bitshift(A,4);
subplot(2,3,6),imshow(A),title('提取之后的隐藏图像')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -