结合水印和萤火虫算法 [英] combine watermarking and firefly algoritms

查看:101
本文介绍了结合水印和萤火虫算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好



如何帮助我将萤火虫与水印结合起来?



谢谢



你的majid



请快点



解决方案

功能[最佳] = firefly_simple(instr)

%n = ????? ??? ??? ?? ???

%MaxGeneration = ????????????????? ????

if nargin< 1,instr = [12 50];结束

n = instr(1); MaxGeneration = instr(2);

rand('state',0); %重置随机发生器

%------四峰函数---------------------

str1 ='exp( - (x-4)^ 2-(y-4)^ 2)+ exp( - (x + 4)^ 2-(y-4)^ 2)';

str2 ='+ 2 * exp(-x ^ 2-(y + 4)^ 2)+ 2 * exp(-x ^ 2-y ^ 2)';

funstr = strcat(str1,str2);

%????? ?? ?? ???? ???? ???

f = vectorize(inline(funstr));

%range = [xmin xmax ymin ymax];

range = [ - 5 5 -5 5];



%-------------------------- ----------------------

alpha = 0.2; %随机性0--1(高度随机)

gamma = 1.0; %吸收系数

%-------------------------------------- ----------

%?????????? ??? ???? ????? ??????? ??????

Ngrid = 100;

dx =(范围(2) - 范围(1))/ Ngrid;

dy =(range(4)-range(3))/ Ngrid;

[x,y] = meshgrid(range(1):dx:range(2),...

range(3):dy:range(4));

z = f(x,y);

%????? ?? ??? ???? ???

数字(1); surfc(x,y,z);



%------------------------ ------------------------

%????????? ???? ?? ñ??? ?????%

[xn,yn,Lightn] = init_ffa(n,范围);

%????? ??????? ??? ??? ?? ???

%要优化的函数轮廓

数字(2);

%迭代或伪时间行进
i = 1的
:MaxGeneration,%%%%% ???? ?????

%????? ???? ????

等高线(x,y,z,15);坚持;

%??????? ??? ????? ????

zn = f(xn,yn);



%???? ???? ??? ????? ?? ???? ????? ??? ???

[Lightn,Index] = sort(zn);

xn = xn(索引); yn = yn(指数);

xo = xn;哟=炔; Lighto = Lightn;

%?????? ???? ??????? ?????? ?????

plot(xn,yn,'。','markersize',10,'markerfacecolor','g');

%??? ??????????? ?????????????
[xn,yn] = ffa_move(xn,yn,Lightn,xo,yo,Lighto,alpha,gamma,范围);

drawow;

延迟;

结束%%%%%迭代结束

最佳(:,1)= XO';最好(:,2)=哟;最好的(:,3)= Lighto';



%----- ????????? ?????? ???????????? ---------

%???? ????????????????? b $ b / b函数[xn,yn,Lightn] = init_ffa(n,范围)

xrange = range( 2)-range(1);

yrange = range(4)-range(3);

xn = rand(1,n)* xrange + range(1 );

yn = rand(1,n)* yrange + range(3);

Lightn =零(size(yn));



%?????????????? ?????????????? b
函数[xn,yn] = ffa_move(xn,yn,Lightn,xo,yo,...

Lighto,alpha,gamma,range)

ni = size(yn,2); nj = size(yo,2);

for i = 1:ni,

%吸引力参数beta = exp(-gamma * r)

表示j = 1:nj,

r = sqrt((xn(i)-xo(j))^ 2+(yn(i)-yo(j))^ 2);

如果Lightn(i)< lighto(j),> beta0 = 1; beta = beta0 * exp(-gamma * r。^ 2);

xn(i)= xn(i)。*(1-beta)+ xo(j)。* beta + alpha。 *(rand-0.5);

yn(i)= yn(i)。*(1-beta)+ yo(j)。* beta + alpha。*(rand-0.5);

结束

结束%结束j

结束%end for i

[xn,yn] = findrange( xn,yn,range);



%???????????????????????? ?????????????
函数[xn,yn] = findrange(xn,yn,range)

for i = 1 :length(yn),

如果xn(i)< = range(1),xn(i)= range(1);结束

如果xn(i)> = range(2),xn(i)= range(2);结束

如果yn(i)< = range(3),yn(i)= range(3);结束

如果yn(i)> = range(4),yn(i)= range(4);结束

结束

%============== ????? ============ =========================

hi all

how can help me to combine firefly with watermarking ?

thanks

yours majid

please hurry up

please

解决方案

function [best]=firefly_simple(instr)
% n=????? ??? ??? ?? ???
% MaxGeneration=?????????????????? ????
if nargin<1, instr=[12 50]; end
n=instr(1); MaxGeneration=instr(2);
rand('state',0); % Reset the random generator
% ------ Four peak functions ---------------------
str1='exp(-(x-4)^2-(y-4)^2)+exp(-(x+4)^2-(y-4)^2)';
str2='+2*exp(-x^2-(y+4)^2)+2*exp(-x^2-y^2)';
funstr=strcat(str1,str2);
% ????? ?? ?? ???? ???? ???
f=vectorize(inline(funstr));
% range=[xmin xmax ymin ymax];
range=[-5 5 -5 5];

% ------------------------------------------------
alpha=0.2; % Randomness 0--1 (highly random)
gamma=1.0; % Absorption coefficient
% ------------------------------------------------
% ?????????? ??? ???? ????? ??????? ??????
Ngrid=100;
dx=(range(2)-range(1))/Ngrid;
dy=(range(4)-range(3))/Ngrid;
[x,y]=meshgrid(range(1):dx:range(2),...
range(3):dy:range(4));
z=f(x,y);
% ????? ?? ??? ???? ???
figure(1); surfc(x,y,z);

% ------------------------------------------------
% ????????? ???? ?? n??? ?????%
[xn,yn,Lightn]=init_ffa(n,range);
% ????? ??????? ??? ??? ?? ???
% contours of the function to be optimized
figure(2);
% Iterations or pseudo time marching
for i=1:MaxGeneration, %%%%% ???? ?????
% ????? ???? ????
contour(x,y,z,15); hold on;
% ??????? ??? ????? ????
zn=f(xn,yn);

% ???? ???? ??? ????? ?? ???? ????? ??? ???
[Lightn,Index]=sort(zn);
xn=xn(Index); yn=yn(Index);
xo=xn; yo=yn; Lighto=Lightn;
% ?????? ???? ??????? ?????? ?????
plot(xn,yn,'.','markersize',10,'markerfacecolor','g');
% ?????????????? ??????????????????
[xn,yn]=ffa_move(xn,yn,Lightn,xo,yo,Lighto,alpha,gamma,range);
drawnow;
hold off;
end %%%%% end of iterations
best(:,1)=xo'; best(:,2)=yo'; best(:,3)=Lighto';

% -----????????? ?????? ???????????????---------
% ???? ?????n ????????%
function [xn,yn,Lightn]=init_ffa(n,range)
xrange=range(2)-range(1);
yrange=range(4)-range(3);
xn=rand(1,n)*xrange+range(1);
yn=rand(1,n)*yrange+range(3);
Lightn=zeros(size(yn));

% ?????????????? ??????????????????
function [xn,yn]=ffa_move(xn,yn,Lightn,xo,yo,...
Lighto,alpha,gamma,range)
ni=size(yn,2); nj=size(yo,2);
for i=1:ni,
% The attractiveness parameter beta=exp(-gamma*r)
for j=1:nj,
r=sqrt((xn(i)-xo(j))^2+(yn(i)-yo(j))^2);
if Lightn(i)<lighto(j),>beta0=1; beta=beta0*exp(-gamma*r.^2);
xn(i)=xn(i).*(1-beta)+xo(j).*beta+alpha.*(rand-0.5);
yn(i)=yn(i).*(1-beta)+yo(j).*beta+alpha.*(rand-0.5);
end
end % end for j
end % end for i
[xn,yn]=findrange(xn,yn,range);

%?????????????????????????????????????????
function [xn,yn]=findrange(xn,yn,range)
for i=1:length(yn),
if xn(i)<=range(1), xn(i)=range(1); end
if xn(i)>=range(2), xn(i)=range(2); end
if yn(i)<=range(3), yn(i)=range(3); end
if yn(i)>=range(4), yn(i)=range(4); end
end
% ============== ?????=====================================


这篇关于结合水印和萤火虫算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆