资源简介
利用阈值进行分割,简单,适用于提取特征较为明显的目标
代码片段和文件信息
%基于贝叶斯分类算法的图像阈值分割
clear
clc;
Init = imread(‘SLR.bmp‘);
Im=rgb2gray(Init);
subplot(131)imhist(Im)title(‘直方图‘)
subplot(132)imshow(Im)
title(‘原始图像‘)
[xy]=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(ij))>=T
S1=S1+double(Im(ij)); %大于阈域值图像点灰度值累加
n1=n1+1; %大于阈域值图像点个数累加
else
S0=S0+double(Im(ij)); %小于阈域值图像点灰度值累加
n0=n0+1; %小于阀域值图像点个数累加
end
end
end
T0=S0/n0; %求小于阀域值均值
T1=S1/n1; %求大于阀域值均值
if abs(T-((T0+T1)/2))<0.1 %迭代至 前后两次阀域值相差几乎为0时 停止迭代。
break;
else
T=(T0+T1)/2; %在阈值T下,迭代阈值的计算过程
end
end
count %显示运行次数
T
i1=im2bw(ImT/255); % 图像在最佳阈值下二值化
subplot(133)imshow(i1)
title(‘实验结果‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1594 2009-03-19 22:10 阈值分割迭代法\iterative.m
文件 51930 2009-03-19 22:08 阈值分割迭代法\lena.BMP
文件 58856 2009-03-19 22:03 阈值分割迭代法\result.bmp.fig
文件 18654 2009-03-19 21:50 阈值分割迭代法\SLR.BMP
目录 0 2009-04-29 22:28 阈值分割迭代法
----------- --------- ---------- ----- ----
131034 5
- 上一篇:毕业设计 测电容单片机源代码
- 下一篇:电子信息专业笔试题_硬件
评论
共有 条评论