gusucode.com > 利用遗传算法进行图像分割matlab源码程序 > segment_ga/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); %%程序结束