1 简介
针对二维熵法阈值分割中精度和时间性能较差的问题,提出了基于二维熵 - 量子遗传算法的多阈值图像分割方法。定义了二维阈值量子染色体的编码方式,解决了传统遗传算法优化二维最大指数熵阈值过程中速度慢、多样性小的缺点;在产生阈值解时,提出了半随机策略来代替传统的完全随机策略,加快寻优速度;改进了量子门旋转角度方式,提出了一种新的自适应旋转角度的方法,提高了算法的精度和收敛速度。并进行了分割实验和SAR 图像变化检测实验。结果表明:该方法比基于一维熵的图像分割算法具有更高的抗噪性;其寻优速度较完全随机产生阈值解的量子遗传算法提高了 3 倍 ~5 倍;避免了算法发散或过早收敛。与其他基于阈值分割的变化检测算法相比,性能更好。
转存失败重新上传取消
2 部分代码
%%%利用最大熵法(multiKSW熵法)及量子遗传算法实现灰度图像多阈值分割
%%%主程序
%%初始部分,读取图像及计算相关信息
clear all;
close all;
clc;
[I,filename]=sunlightopenpic;
I=uint8(I);
% % if isrgb(I)==1
% % I=rgb2gray(I);
% % end
Lmin=double(min(I(:)));
Lmax=double(max(I(:)));
graynum=double(Lmax-Lmin+1);
[M,N]=size(I);
hist=imhist(I);
total=M*N;
hist1=double(hist/total);
%hist1对应是每种灰度的对应出现概率。
HT=0; % 统计图像的信息熵
for i=Lmin:Lmax
if hist1(i+1)==0
temp=0;
else
temp=hist1(i+1)*log(1/hist1(i+1));
end
HT=HT+temp;
end
%%程序主干部分,种群随机初始化,种群数取10,染色体二进制编码取8位 初始化Q(t)
global population C;
C=2; %对应阈值的个数
population=20;
Q=ones(8*C,2,population);
Q=Q/sqrt(2);
%这里定义种群数
tic
figure(1);
subplot(2,2,1),imshow(I);title('原图');
subplot(2,2,2);imshow(uint8(seg_I));
title(['multiksw熵法及量子遗传算法图像多阈值',num2str(t_opt1(1)),' ',num2str(t_opt1(C)),'分类数为',num2str(C)]);
subplot(2,2,3);imhist(I);title('原图像的直方图');
disp('最佳直方图熵法及量子遗传算法阈值为:')
t_opt1
disp('对应的熵值为')
multiksw(t_opt1(:,1),C,Lmin,Lmax,hist1,HT)
%%程序结
3 仿真结果
4 参考文献
[1]仝彤, 慕晓冬, and 张力. "基于改进二维熵-量子遗传算法的图像多阈值变化检测方法." 火力与指挥控制 5(2019).