利用KSW熵法及传统遗传算法实现灰度图像阈值分割

数学建模加油站 2022-11-08 21:10:04

         图像分割就是将图像按照人们的意愿分成许多个区域,使这些区 域具有不重叠的特性或者该区域具有实际意义或是几个区域的图像 特征相差不大。 图像分割使得人们分离出目标区域,同时人们可以对 图像的特征进行提取或者是对目标的一些参数进行一些简单的测量, 为人们进行更深入的图像研究提供了基础。图像分割是图像处理的一 个重要步骤,在人们进行图像处理研究的初期就已经受到人们的高度 重视。

 代码展示

%%初始部分,读取图像及计算相关信息
clear all;
clc;
I=imread('Lenna.bmp');
hist=imhist(I);
total=0;
for i=0:255
    total=total+hist(i+1);
end
hist1=hist/total;

HT=0;
for i=0:255
    if hist1(i+1)==0
        temp=0;
    else
        temp=hist1(i+1)*log(1/hist1(i+1));
    end
    HT=HT+temp;
end
    %种群随机初始化,种群数取10,染色体二进制编码取8位
    t0=clock;
    population=10;  
    X0=round(rand(1,population)*255);
    for i=1:population
        adapt_value0(i)=ksw(X0(i),0,255,hist1,HT);
    end
    adapt_average0=mean(adapt_value0);    
    X1=X0;
    adapt_value1=adapt_value0;
    adapt_average1=adapt_average0;    
    %循环搜索,搜索代数取200    
    generation=200;   
    for k=1:generation       
        s1=select_ga(X1,adapt_value1);   
        s_code1=dec2bin(s1,8);   
        c1=cross_ga(s_code1);   
        v1=mutation_ga(c1);    
        X2=(bin2dec(v1))';    
        for i=1:population
            adapt_value2(i)=ksw(X2(i),0,255,hist1,HT);
        end    
        adapt_average2=mean(adapt_value2);    
        if abs(adapt_average2-adapt_average1)<=0.1
            break;
        else
            X1=X2;
            adapt_value1=adapt_value2;
            adapt_average1=adapt_average2; 
        end
    end   
    max_value=max(adapt_value2);
    number=find(adapt_value2==max_value);
    t_opt=round(mean(X2(number)));
t1=clock;
search_time=etime(t1,t0);
%结果显示
threshold_opt=t_opt/255;
I1=im2bw(I,threshold_opt);
figure(1);
subplot(1,2,1),
imshow(I);
title('原始灰度图');
subplot(1,2,2),
imshow(I1);
title('阈值分割后的图像');
disp('算法最佳阈值为:');
disp(t_opt);
disp('算法阈值搜索时间(s):');
disp(search_time);

结果展示

 

 

代码见 🍞正在为您运送作品详情

...全文
17 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,080

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧