📄 yichuan.m
字号:
close all;
clear all;
%****************************************************
%*
%* 遗传+退火算法 确定阈值
%****************************************************
data=imread('e:/watermark/use picture/64color.bmp','bmp');
dat=data(:,:,1);
figure();
imshow(dat);
%********************************************************
m=max(max(dat));
n=min(min(dat));
p=zeros(1,256);
for i=1:64
for j=1:64
a=dat(i,j);
p(1,a+1)=p(1,a+1)+1;
end
end
p=p/4096; % 计算各灰度级的像素百分比
for t=n:m
w0(1,t+1)=0;
for k=n:t
w0(1,t+1)=w0(1,t+1)+p(1,k+1);
end
w1(1,t+1)=1-w0(1,t+1);
ut(1,t+1)=0;
b0(1,t+1)=0;
b1(1,t+1)=0;
for k=n:t
ut(1,t+1)=ut(1,t+1)+k*p(1,k+1);
end
u0(1,t+1)=ut(1,t+1)/w0(1,t+1);
u(1,t+1)=0;
for k=n:m
u(1,t+1)=u(1,t+1)+k*p(1,k+1);
end
u1(1,t+1)=(u(1,t+1)-ut(1,t+1))/(1-w0(1,t+1));
for k=n:t
b0(1,t+1)=b0(1,t+1)+(k-u0(1,t+1)).^2*p(1,k+1)/w0(1,t+1);
end
for k=t+1:m
b1(1,t+1)=b1(1,t+1)+(k-u1(1,t+1)).^2*p(1,k+1)/w1(1,t+1);
end
tao(1,t+1)=w0(1,t+1)*(u0(1,t+1)-u(1,t+1)).^2+w1(1,t+1)*(u1(1,t+1)-u(1,t+1)).^2;
end
for t=n:m
if tao(1,t+1)==max(tao)
yuzhi1=t; % 类间最大方值阈值分割
end
end
%*******************************************
% 退火算法
for t=n:m
J(1,t+1)=(abs(u0(1,t+1)-u1(1,t+1))).^2/(b0(1,t+1)+b1(1,t+1));
end
for t=n:m
if J(1,t+1)==max(J)
yuzhi2=t;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -