matlab
做图像加密的Tara
Keep learning
展开
-
计算图像哈希值
function h = hash(inp,meth) % HASH - Convert an input variable into a message digest using any of % several common hash algorithms % inp=inp(:); % convert strings and logicals into uint8 format if ischar(inp) || islogical(inp) inp=uint原创 2021-06-24 22:11:24 · 1889 阅读 · 1 评论 -
四维超混沌系统matlab
该系统来自论文《A new 4D hyperchaotic system with high complexity》, 作者是:LijuanChena, Song Tangb, Qingdu Lib, Shouming Zhonga。简单复现:x0=0;y0=0.5;z0=0.5;w0=0.5;a=80;b=45;c=22;d=5;e=21;r=100;f=8;K0=[x0 y0 z0 w0];%初值矩阵funn=@(t,X)[a*(X(2)-X(1)-X(4))+b*X(.原创 2021-06-19 22:23:39 · 4533 阅读 · 11 评论 -
Logistic-tent混沌系统matlab
长这样能看出来是个一维的,实现一下:function s=LT(r,x0,n)s=zeros(1,n); for i=1:n+800; if x0<0.5 x1=mod(r*x0*(1-x0)+(4-r)*x0/2,1); else x1=mod(r*x0*(1-x0)+(4-r)*(1-x0)/2,1); end if i>800 s(i-800)=x1; end x0=原创 2021-06-14 21:36:54 · 2006 阅读 · 4 评论 -
压缩感知重构之SP的matlab实现
function Demo_CS_SP()%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% the DCT basis is selected as the sparse representation dictionary% instead of seting the whole image as a vector, I process the image in the% fashion of c原创 2021-05-26 22:19:35 · 930 阅读 · 0 评论 -
高斯映射的李雅普诺夫指数Lyapunov的matlab实现
clc;clear;u=0:0.0001:1.3;x0=0.1;n=3000;t=1000;len=length(u);for i=1:len temp=0; for j=1:n x=exp(-5*x0^2)-u(i); x0=x; if j>t temp=temp+log(abs(-10*x*exp(-5*x^2))); end end LE(i)=tem原创 2021-05-25 21:25:01 · 1092 阅读 · 0 评论 -
Gauss映射混沌分岔图matlab
clc;clear all;close allaxis([0,1,-0.4,1]);x0=0.1;t=800;M=850;r=0:0.002:1;[m,n]=size(r);hold onfor i=1:nx(1)=exp(-5*x0^2)-r(i);for j =2:M x(j)=exp(-5*x(j-1)^2)-r(i);endxn{i}=x(t:M);pause(0.1);plot(r(i),xn{i},'r.','Markersize',2);xlabel('r')原创 2021-05-23 22:11:59 · 889 阅读 · 0 评论 -
分段线性映射PWLCM混沌分岔图matlab
clc;clear all;close allaxis([0.1,0.5,0,1]);x0=0.1;t=800;M=850;r=0.1:0.001:0.49;[m,n]=size(r);hold onfor i=1:n x(1)=pwlcm(r(i),x0);for j =2:M x(j)=pwlcm(r(i),x(j-1));endxn=x(t:M);pause(0.1);plot(r(i),xn,'r.','Markersize',2);xlabel('r');原创 2021-05-22 21:52:48 · 1774 阅读 · 0 评论 -
图像直方图卡方检验matlab
clc;clear;close all;K=[1.1 2.2 3.3 4.4];P=imread('lenna.bmp'); P1=rgb2gray(P);P_R=P(:,:,1);P_G=P(:,:,2);P_B=P(:,:,3); imhist(uint8(P(:,:,1)));P1=double(P1);iptsetpref('imshowborder','tight');figure(1);imshow(P1);% figure(2);imshow(P2);figure(3原创 2021-05-07 22:30:29 · 2716 阅读 · 3 评论 -
Chebyshev混沌映射分岔图matlab实现
clc;clear all;close allaxis([0,1,-1,1]);x0=0.1;t=800;M=850;r=0:0.002:1;[m,n]=size(r);tic;hold onfor i=1:nx(1)=cos((r(i)+1)*acos(x0));for j =2:M x(j)=cos((r(i)+1)*acos(x(j-1)));endxn{i}=x(t:M);pause(0.1);plot(r(i),xn{i},'r.','Markersize',2);原创 2021-05-04 22:30:24 · 2776 阅读 · 2 评论 -
图像加密系统性能分析之熵分析matlab实现(信息熵)
信息熵反映图像信息的不确定性,熵越大,不确定性越大,信息量也就越大,从而可视信息就越少。所以,对于图像加密系统,需要分析其密文图像的熵。对于灰度等级为256的图像,信息熵的理论值为8,密文图像的信息熵越接近8,说明它的可视信息就越少,系统的加密性能也就越好。function y=Entropy(P)P=double(P);[M,N]=size(P);P=transpose(P(:));T=zeros(1,256);for i=1:256 T(i)=sum(P==(i-1)); .原创 2021-05-02 22:38:05 · 2898 阅读 · 0 评论 -
Chebyshev映射的李雅普诺夫指数Lyapunov的matlab实现
clc;clear;u=0:0.0001:1;x0=0.1;n=3000;t=1000;len=length(u);for i=1:len temp=0; for j=1:n x=cos((u(i)+1)*acos(x0)); x0=x; if j>t temp=temp+log(abs((u(i)+1)*sin((u(i)+1)*acos(x))/(1-x^2)^0.5));原创 2021-04-29 22:53:30 · 1476 阅读 · 3 评论 -
Henon映射的李雅普诺夫指数Lyapunov的matlab实现
clc;close all;clear all N = 1000; a = (0:0.001:1.4)'; b = 0.3; na = length(a); LE1 = zeros(na,1); LE2 = zeros(na,1); x = 0.2; y = 0.3; for i=1:na LCEvector = zeros(2,1); Q = eye(2); for j=1:N xprev = x; yprev = y;原创 2021-04-28 17:30:57 · 5070 阅读 · 11 评论 -
Tent映射混沌分岔图matlab
clc;clear all;close allaxis([0,1,0,1]);x0=0.1;t=800;M=850;r=0:0.002:1;[m,n]=size(r);hold onfor i=1:n if x0<0.5 x(1)=2*r(i)*x0; end if x0>=0.5 x(1)=2*r(i)*(1-x0); endfor j =2:M if x(j-1)<0.5原创 2021-04-27 21:16:47 · 5401 阅读 · 3 评论 -
Henon映射混沌分岔图matlab
clc;clear all;close allx0=0.1;y0=0.2;b=1;n=850;t=800;hold onfor a = 0:0.002:1x(1)=1+y0-a*x0^2;y(1)=b*x0;for i =2:n x(i)=1+y(i-1)-7/5*a*x(i-1)^2; y(i)=3/10*b*x(i-1);endxn=x(t+1:n);pause(0.1);plot(a,xn,'r.','Markersize',2);xlabel('a');ylabe原创 2021-04-26 22:21:20 · 5035 阅读 · 6 评论 -
Baker映射混沌分岔图matlab
clc;clear all;close allaxis([0,1,0,10]);x0=0.1;y0=0.2;t=800;M=850;r=0.002:0.005:1;[m,n]=size(r);hold onfor i=1:n if x0<=r(i) x(1)=x0/r(i); y(1)=y0*r(i); end if x0>r(i) x(1)=(x0-r(i))*(1-r(i))^(-1);原创 2021-04-25 22:33:54 · 1072 阅读 · 0 评论 -
Sine映射的李雅普诺夫指数Lyapunov的matlab实现
clear all;clc;u=0:0.001:1;p=100;k=length(u);for n=1:k for m=2:p x(1,n)=0.1; x(m,n)=u(n)*sin(pi*x(m-1,n)); endendfor r=1:k for h=2:p A{1,r}=[pi*u(r)*cos(pi*x(1,r))]; A{h,r}=[pi*u(r)*cos(pi*x(h,r))]*A{h-1,r}原创 2021-04-24 22:30:53 · 2209 阅读 · 5 评论 -
Tent映射的李雅普诺夫指数Lyapunov的matlab实现
clc;clear;u=0:0.001:1;n=length(u);for i=1:n y(i)=log(abs(2*u(i)));endfigure;plot(u,y,'r.','markersize',2);hold onx=get(gca,'xlim');y=0;plot(x,[y y],'k');axis([0,1,-5,1]);hold off set(gca,'Xtick',0:0.2:1);set(gca,'Ytick',-5:1:1);xlabel原创 2021-04-23 22:25:05 · 2201 阅读 · 1 评论 -
分段线性映射PWLCM的李雅普诺夫指数Lyapunov的matlab实现
clc;clear;p1=0:0.0001:0.5;p2=0.5:0.0001:1;p=0:0.0001:1;for i=1:length(p1) y1(i)=log(abs(1/p1(i)));endfor i=1:length(p2) y2(i)=log(abs(1/(1-p2(i))));endy=[y1 y2(2:end)];plot(p,y,'r.','markersize',2);xlabel('u');ylabel('Lyapunov Exponent'原创 2021-04-22 22:24:25 · 1077 阅读 · 0 评论 -
彩色图像RGB分量直方图分析matlab
彩色和灰度图像直方图matlab计算图像直方图有自带函数为imhist()1、直接显示图像i的灰度直方图:imhist( i )2、指定灰度级n显示直方图:imhist(i,n)在彩色图像加密算法中,通常在分析直方图时,都是分别做R、G、B通道的直方图。对此有比较简单的做法就是把彩色图像三通道先分开,再分别求直方图。示例:% figure% %subplot(1,3,1),% imhist(uint8(CC(:,:,1)));% set(gca,‘XLim’,[0 250]);% s..原创 2021-04-21 22:16:28 · 4358 阅读 · 2 评论 -
图像相邻像素相关性分析matlab
%图像相邻像素相关性%随机选取图像A中相邻的N个像素点,分别计算在水平,垂直,正对角和反对角方向上的相关系数%注意是算密文图像 R G B分量分开算 function r=ImCoef(A,N)A=double(A);[m,n]=size(A);r=zeros(1,4);x1=mod(floor(rand(1,N)*10^10),m-1)+1;x2=mod(floor(rand(1,N)*10^10),m)+1;x3=mod(floor(rand(1,N)*10^10),m-1)+2;y1=原创 2021-04-19 22:55:41 · 9297 阅读 · 28 评论 -
(混沌系统)二维Logistic ICMIC级联映射的matlab实现(2D-LICM)
定义式实现:x=zeros(1);y=zeros(1);x(1)=0.5;y(1)=0.5;a=0.6;k=0.8;for n=1:40000 x(n+1)=sin(21./a*(y(n)+3)*k*x(n)*(1-k*x(n))); y(n+1)=sin(21./(a*(k*x(n+1)+3)*y(n)*(1-y(n))));endfigure;H=plot(x(1000:end),y(1000:end),'b');%1000set(H,'linestyle','none..原创 2021-04-13 20:41:56 · 4251 阅读 · 3 评论 -
彩色图像的RGB分量分解matlab
彩色图像分解为R(红),G(绿),B(蓝)分量。实现:P=imread('lena.jpg'); %载入图片figure;%提取图像三通道信息P_R1=P;P_G1=P;P_B1=P;tic;P_R1(:,:,2)=0;P_R1(:,:,3)=0;P_G1(:,:,1)=0;P_G1(:,:,3)=0;P_B1(:,:,1)=0;P_B1(:,:,2)=0;% 显示图像subplot(1,3,1);imshow(P_R1,[]);title('R通道');subplot(1,3,2);..原创 2021-04-11 22:31:14 · 4147 阅读 · 0 评论 -
基于加取模和循环左移运算的扩散算法matlab
基于加取模和循环左移运算的扩散算法实际上是对前面两种扩散算法的显著改良。LSB3表示取数据的最低三位,对于8b的灰度图像,每个像素都是8b的,所以LSB3得到的数据范围始终在0~7,是一个像素点数据循环的有效范围。这里注意,除了循环左移,还可以用循环右移,如果加密时用了循环左移,那么解密时应该循环右移。实现:clc;clear;P=imread('lenna.bmp');P=rgb2gray(P);iptsetpref('imshowborder','tight');figure(1..原创 2021-04-09 16:18:16 · 1232 阅读 · 7 评论 -
(图像加密)基于加取模运算的扩散算法matlab实现
基于加取模运算的扩散算法除了异或运算外,更常用的扩散算法是加取模运算。在加取模运算中,明文图像像素点的信息是隐藏到密文图像像素点中的,所以需要循环两次才能实现任意明文像素点的信息扩散到整个密文图像中。...原创 2021-04-08 17:14:40 · 2835 阅读 · 3 评论 -
(图像加密)基于异或运算的图像扩散算法matlab实现
扩散图像加密中,扩散处理是在不改变像素点位置的条件下,将任一明文像素点的信息隐藏在尽可能多的密文像素点中。以下介绍一些基本的扩散算法 基于异或运算的扩散处理正向(i从1到MN)的算法与其逆算法:逆向(i从MN到1)的算法与其逆算法:C和S是密码向量,P是明文图像。实现:clc;clear;P=imread('lena.bmp');P=rgb2gray(P);iptsetpref('imshowborder','tight');figure(1);subplot(1,3,1)原创 2021-04-05 11:00:42 · 5220 阅读 · 3 评论 -
(图像加密)常用图像置乱算法matlab实现(三)
第二种:将二维图像展开成一维行/列向量,对向量进行位置置乱。将二维图像展开成一维向量后进行置乱,再将置乱后的一维向量还原成二维矩阵。比起整行整列操作,效果更好,但运算量更大。(2)无重复置乱把由混沌系统产生的随机向量中重复的随机数只保留一个,然后在末尾按从小到大的顺序补齐没有出现过的元素。实现:clc,clear;P=imread('lenna.bmp');P=rgb2gray(P);iptsetpref('imshowborder','tight');figure(1);su..原创 2021-04-04 11:40:11 · 8329 阅读 · 12 评论 -
(图像加密)常用图像置乱算法matlab实现(二)
第一种 1、二维图像直接行置乱与列置乱(2)单次不重复置乱前文所述随机置乱方法,有些行列会被多次交换位置,如第一列经过三次列置乱后,仍然处于第一列。所以采用单次不重复置乱方法效果可能会更好一些(其实在视觉上根本看不出来)实现方式很简单: 对于行/列置乱,把由混沌系统产生的随机向量X/Y中重复的随机数只保留一个,然后在末尾按从小到大的顺序补齐没有出现过的元素。实现:这里使用的超混沌Lorenz系统clc,clear;P=imread('lena.bmp');P=rgb2gra..原创 2021-04-01 20:08:52 · 3633 阅读 · 13 评论 -
(图像加密)常用图像置乱算法matlab实现(一)
常用置乱算法分三种:1、对二维图像矩阵进行行置乱和列置乱,或交叉进行行、列置乱。2、将二维图像展开成一维行向量或一维列向量,对该向量进行位置置乱。3、借助2x2置乱矩阵变换二维图像的各个像素点的位置。 第一种1、二维图像直接行置乱与列置乱(1)随机置乱行/列随机:借助于混沌系统产生长度为M/N的随机数向量X/Y,然后将图像矩阵的第i行/第j列与第Xi行/第Yj列互换。实现:这里使用的超混沌Lorenz系统clc,clear;P=imread('lena.jpg');..原创 2021-03-30 21:03:25 · 5583 阅读 · 2 评论 -
(混沌序列统计特性)单比特频率测试---matlab
单比特频率测试(The Frequency (Monobit)Test) :计算序列中比特1出现的频率,这个值越接近1/2,则说明序列的随机性越好。实现:clc;clear;h=0.002;t=800;n=1000000;a=10;b=8/3;c=28;r=-1;x0=1.1;y0=2.2;z0=3.3;w0=4.4;s=zeros(1,n);for i=1:n+t K11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0; K13=a*(y0.原创 2021-03-29 21:15:24 · 1184 阅读 · 0 评论 -
(混沌序列统计特性)Maurer通用统计测试---matlab
检测序列能否被显著压缩,一个能被显著压缩的序列不是随机序列。clc;clear;h=0.002;t=800;n=1000000;a=10;b=8/3;c=28;r=-1;x0=1.1;y0=2.2;z0=3.3;w0=4.4;s=zeros(1,n);for i=1:n+t K11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0; K13=a*(y0-(x0+K12*h/2))+w0;K14=a*(y0-(x0+h*K13))+w0; x1=原创 2021-03-27 20:35:52 · 691 阅读 · 1 评论 -
(混沌序列统计特性)离散傅里叶测试---matlab
目的:检测序列中有无周期现象的存在,如果p_value>=0.01,则可认为序列是随机的,否则认为序列是非随机的。clc;clear;h=0.002;t=800;n=1000000;a=10;b=8/3;c=28;r=-1;x0=1.1;y0=2.2;z0=3.3;w0=4.4;s=zeros(1,n);for i=1:n+t K11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0; K13=a*(y0-(x0+K12*h/2))+w0;K原创 2021-03-25 20:45:13 · 490 阅读 · 0 评论 -
(混沌序列统计特性)块内频率测试---matlab
说明:块内频率测试,考察任意序列的任意长子序列中比特1的频率是否接近1/2.clc;clear;h=0.002;t=800;n=1000000;a=10;b=8/3;c=28;r=-1;x0=1.1;y0=2.2;z0=3.3;w0=4.4;s=zeros(1,n);for i=1:n+t K11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0; K13=a*(y0-(x0+K12*h/2))+w0;K14=a*(y0-(x0+h*K13))+w0;原创 2021-03-22 22:33:53 · 677 阅读 · 0 评论 -
(混沌系统)分段线性混沌映射PWLCM的matlab实现
定义式:实现:function y=PWLCM(x,p)if x<p y=x/p;elseif x<0.5 y=(x-p)/(0.5-p);else y=PWLCM(1-x,p);endend原创 2021-03-21 09:26:36 · 2385 阅读 · 2 评论 -
(混沌系统)超混沌Lorenz系统---matlab
说明:别光收藏不点赞呀喂~~对于连续混沌系统,常用四阶经典龙格-库塔法进行离散化超混沌Lorenz系统:1、Lorenz_1h=0.002;n=20000;t=800; %h是步长,n是总的状态点数,t是过渡态的点数a=10;b=8/3;c=28;r=-1;x0=1.1;y0=2.2;z0=3.3;w0=4.4;%混沌系统初始值。取值范围分别(-40,40),(-40,40),(1,81),(-250,250)xn=zeros(1,n);yn=zeros(1,n);zn=zeros(1原创 2021-03-19 16:33:18 · 8156 阅读 · 11 评论 -
(论文)基于深度学习的端到端图像去雾系统DehazeNet---matlab
Paper:《DehazeNet: An End-to-End System for Single Image Haze Removal》首先看一下效果:girls原图然后处理结果:可以看出来效果还是可以的,但是对有的图像颜色失真可能会比较明显。举个栗子:gugong.bmp原图对比可以看出颜色失真情况,以及对图像最上方区域,也就是实景的远处,去雾效果不明显。下面是代码部分,在加载原图时需要注意两点,一是路径要明确,二是一定记得对应修改图片格式。demo.mclc;clear原创 2020-11-26 16:44:54 · 5257 阅读 · 5 评论 -
(混沌系统)一维无限折叠映射ICMIC---Matlab
这个混沌映射来自于一篇很老的论文了,《Chaotic Characteristics of a One-Dimensional Iterative Map with Infinite Collapses》简称ICMIC。偶然看见有人做了二维改进,《Designing a 2D infinite collapse map for image encryption》,想在二维基础上做个三维改进。所以先试一下一维的代码复现。定义式:首先实现一下 Diagram of ICMIC。原图是这样:复现一下:原创 2020-11-24 10:27:15 · 3339 阅读 · 5 评论 -
(混沌系统)图像加密之Logistic混沌映射matlab仿真
简单实现clear;clf;u=2.6:0.001:4.0;x=0.1;for i=1:300x=u.(x-x.^2);endfor j=1:80x=u.(x-x.^2);plot(u,x,‘k.’,‘markersize’,2)hold on;endgrid on原创 2020-10-18 15:57:10 · 6300 阅读 · 11 评论