✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍图像安全已成为多媒体与信息技术领域中的重中之重。图像的价值取决于其所承载的信息为此图像加密技术已被开发并提出以实现对图像的保护。新型采样-重构技术——压缩感知已与其它加密方法结合用于增强图像的安全性。该技术能够同时完成采样与压缩过程。先前的研究已证实该技术具有优异的性能。基于压缩感知的加密方法被证明在计算上是安全且鲁棒的该技术固有的多维投影扰动特性使得隐私泄露变得困难。然而现有的基于压缩的加密算法均采用整个测量矩阵作为密钥这导致密钥尺寸过大难以分配或分发且记忆负担过重。在以往的方案中同时进行压缩与加密的操作不可行从而导致效率低下。为克服这些挑战本文开发了一种混合压缩技术测量矩阵由密钥控制并构建为循环矩阵。原始图像被划分为4个块进行压缩与加密随后这4个经压缩和加密的块通过随机像素交换及随机矩阵进行混淆处理。⛳️ 运行结果 部分代码function sSL0(A, x, sigma_min, sigma_decrease_factor, mu_0, L, A_pinv, true_s)%% SL0(A, x, sigma_min, sigma_decrease_factor, mu_0, L, A_pinv, true_s)%% Returns the sparsest vector s which satisfies underdetermined system of% linear equations A*sx, using Smoothed L0 (SL0) algorithm. Note that% the matrix A should be a wide matrix (more columns than rows). The% number of the rows of matrix A should be equal to the length of the% column vector x.%% The first 3 arguments should necessarily be provided by the user. The% other parameters have defult values calculated within the function, or% may be provided by the user.%% Sequence of Sigma (sigma_min and sigma_decrease_factor):% This is a decreasing geometric sequence of positive numbers:% - The first element of the sequence of sigma is calculated% automatically. The last element is given by sigma_min, and the% change factor for decreasing sigma is given by sigma_decrease_factor.% - The default value of sigma_decrease_factor is 0.5. Larger value% gives better results for less sparse sources, but it uses more steps% on sigma to reach sigma_min, and hence it requires higher% computational cost.% - There is no default value for sigma_min, and it should be% provided by the user (depending on his/her estimated source noise% level, or his/her desired accuracy). By noise we mean here the% noise in the sources, that is, the energy of the inactive elements of% s. For example, by the noiseless case, we mean the inactive% elements of s are exactly equal to zero. As a rule of tumb, for the% noisy case, sigma_min should be about 2 to 4 times of the standard% deviation of this noise. For the noiseless case, smaller sigma_min% results in better estimation of the sparsest solution, and hence its% value is determined by the desired accuracy.%% mu_0:% The value of mu_0 scales the sequence of mu. For each vlue of% sigma, the value of mu is chosen via mumu_0*sigma^2. Note that this% value effects Convergence.% The default value is mu_02 (see the paper).%% L:% number of iterations of the internal (steepest ascent) loop. The% default value is L3.%% A_pinv:% is the pseudo-inverse of matrix A defined by A_pinvA*inv(A*A).% If it is not provided, it will be calculated within the function. If% you use this function for solving x(t)A s(t) for different values of% t, it would be a good idea to calculate A_pinv outside the function% to prevent its re-calculation for each t.%% true_s:% is the true value of the sparse solution. This argument is for% simulation purposes. If it is provided by the user, then the function% will calculate the SNR of the estimation for each value of sigma and% it provides a progress report.%% Authors: Massoud Babaie-Zadeh and Hossein Mohimani% Version: 1.3% Last modified: 4 August 2008.%%% Web-page:% ------------------% http://ee.sharif.ir/~SLzero%% Code History:%--------------% Version 1.2: Adding some more comments in the help section%% Version 1.1: 4 August 2008% - Using MATLABs pseudo inverse function to generalize for the case% the matrix A is not full-rank.%% Version 1.0 (first official version): 4 July 2008.%% First non-official version and algorithm development: Summer 2006if nargin 4sigma_decrease_factor 0.5;A_pinv pinv(A);mu_0 2;L 3;ShowProgress logical(0);elseif nargin 4A_pinv pinv(A);mu_0 2;L 3;ShowProgress logical(0);elseif nargin 5A_pinv pinv(A);L 3;ShowProgress logical(0);elseif nargin 6A_pinv pinv(A);ShowProgress logical(0);elseif nargin 7ShowProgress logical(0);elseif nargin 8ShowProgress logical(1);elseerror(Error in calling SL0 function);end% Initialization%s A\x;s A_pinv*x;sigma 2*max(abs(s));% Main Loopwhile sigmasigma_minfor i1:Ldelta OurDelta(s,sigma);s s - mu_0*delta;s s - A_pinv*(A*s-x); % Projectionendif ShowProgressfprintf( sigma%f, SNR%f\n,sigma,estimate_SNR(s,true_s))endsigma sigma * sigma_decrease_factor;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function deltaOurDelta(s,sigma)delta s.*exp(-s.^2/sigma^2);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function SNRestimate_SNR(estim_s,true_s)err true_s - estim_s;SNR 10*log10(sum(true_s.^2)/sum(err.^2)); 参考文献往期回顾扫扫下方二维码