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