基于Arnold置乱的数字水印图像加密算法的设计,基于Matlab语言编程,完成Arnold置乱算法,并用Matlab GUI工

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Arnold置乱的数字水印图像加密算法的设计,基于Matlab语言编程,完成Arnold置乱算法,并用Matlab GUI工相关的知识,希望对你有一定的参考价值。

参考技术A clc
clear all;
iTimes=10; %置乱次数
% 读入水印图像
file_name='3232水印.bmp';
message=double(imread(file_name));
%水印图像矩阵的行数与列数
Mm=size(message,1);
Nm=size(message,2);
%对水印图像进行arnold置乱
if Mm~=Nm
error('水印矩阵必须为方阵');
end
if Mm~=90
error('必须为90*90大小,或者修改置乱次数');
end
tempImg=message; %图像矩阵赋给tempImg
for n=1:iTimes %置乱次数
for u=1:Mm
for v=1:Nm
temp=tempImg(u,v);
ax=mod((u-1)+(v-1),Mm)+1; %新像素行位置
ay=mod((u-1)+2*(v-1),Nm)+1; %新像素列位置
outImg(ax,ay)=temp;
end
end
tempImg=outImg;
end
% 显示水印,嵌入水印图像与原始图像
figure(1)
subplot(1,3,1);
imshow(message,[]);
title('原始水印');
subplot(1,3,2)
imshow(outImg,[]);
title('置乱水印');
% arnold反置乱
message_arnold=tempImg;
iTimes1=60-iTimes
%置乱后水印图像矩阵的行数与列数
Mo=size(outImg,1);
No=size(outImg,2);
for n=1:iTimes1 % 次数
for u=1:Mo
for v=1:No
temp1=tempImg(u,v);
bx=mod((u-1)+(v-1),Mo)+1;
by=mod((u-1)+2*(v-1),No)+1;
outImg1(bx,by)=temp1;
end
end
tempImg=outImg1;
end
message=outImg1;
% 显示反置乱后水印
%figure(3)
%subplot(1,3,1);
%imshow(message_arnold,[]);
%title('提取的置乱水印');
subplot(1,3,3);
imshow(message,[]);
title('反置乱(恢复)水印');
%subplot(1,3,3);
%imshow(orig_watermark,[])
%title('原始水印')

gui 自己学学吧 matlab中文论坛 gui板块

图像加密基于matlab仿射变换数字图象置乱含Matlab源码 1171期

一、简介

基于matlab仿射变换数字图象置乱

二、源代码

function chengxu()
A=imread('lena.png');
figure,imshow(A);
title('原图像(256*256)');

for K=1:16   %置乱16次
    
    figure,imshow(B);
    title(['置乱',num2str(K),'次后的图像'])
    A=B;
end

end

function B=zhiluan(A)
%此函数将图像A置乱,输出置乱后的图像B
 
for x=1:N
    for y=1:N
        if x<y   %计算(x,y)点映射到B图像的坐标(x1,y1)
            x1=x-y+N+1;
            y1=-x+N+1;
        else
            x1=x-y+1;
            y1=-x+N+1; 
       
    end
end
end

三、运行结果

















四、备注

版本:2014a

以上是关于基于Arnold置乱的数字水印图像加密算法的设计,基于Matlab语言编程,完成Arnold置乱算法,并用Matlab GUI工的主要内容,如果未能解决你的问题,请参考以下文章

图像加密基于matlab GUI Arnold置乱图像加密解密含Matlab源码 1239期

求解关于基于matlab的灰度图像处理 办法 具体在问题补充部分(学校实验考核)

用matlab语言编写显示一幅彩色图像程序

Matlab编程

主流的图像置乱方法

matlab如何进行图像置乱