%基于贝叶斯分类算法的图像阈值分割
clear
clc;
Im = imread('flower.tif');
subplot(131),imhist(Im),title('直方图')
subplot(132),imshow(Im)
title('原始图像')
[x,y]=size(Im); % 求出图象大小
b=double(Im);
zd=max(max(Im)) % 求出图象中最大的灰度
zx=min(min(Im)) % 最小的灰度
T=(zd+zx)/2; % T赋初值,为最大值和最小值的平均值
TT=0; %TT赋初值
S0=0.0; n0=0.0; %为计算灰度大于阈值的元素的灰度总值、个数赋值
S1=0.0; n1=0.0; %为计算灰度小于阈值的元素的灰度总值、个数赋值
allow=10; % 新旧阈值的允许接近程度
d=abs(T-TT);
count=0; % 记录几次循环
while(d>=allow) % 迭代最佳阈值分割算法
count=count+1;
for i=1:x,
for j=1:y,
if Im(i,j)<T,
S0=S0+b(i,j);
n0=n0+1;
end
if Im(i,j)>=T,
S1=S1+b(i,j);
n1=n1+1;
end
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载