www.pudn.com > segment_ga.rar > ksw_qiongju.m


 
 
 
%%%利用最佳直方图熵法(KSW熵法)及穷举法实现灰度图像阈值分割 
%%%主程序 
 
 
%%初始部分,读取图像及计算相关信息 
 
clear; 
close all; 
clc; 
 
I=imread('rice_noise.tif'); 
 
 
 
 
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 
 
 
%%程序主干部分 
t0=clock; 
 
    for i=0:255 
        adapt_value(i+1)=ksw(i,0,255,hist1,HT); 
    end 
     
    max_value=max(adapt_value); 
    number=find(adapt_value==max_value); 
    t_opt=number-1; 
 
t1=clock; 
search_time=etime(t1,t0); 
     
%%阈值分割及显示部分 
 
threshold_opt=t_opt/255; 
 
I1=im2bw(I,threshold_opt); 
 
disp('灰度图像阈值分割的效果如图所示:'); 
disp('源图为:Fifure No.1'); 
disp('最佳直方图熵法及穷举法阈值分割后的图像为:Fifure No.2'); 
 
figure(1); 
imshow(I); 
title('源图'); 
 
figure(2); 
imshow(I1); 
title('最佳直方图熵法及穷举法阈值分割后的图像'); 
 
 
disp('最佳直方图熵法及穷举法阈值为:'); 
disp(t_opt); 
 
disp('最佳直方图熵法及穷举法阈值搜索所用时间(s):'); 
disp(search_time); 
 
%%程序结束