資源簡(jiǎn)介
利用閾值進(jìn)行分割,簡(jiǎn)單,適用于提取特征較為明顯的目標(biāo)

代碼片段和文件信息
%基于貝葉斯分類(lèi)算法的圖像閾值分割?
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);?????????????????????????%?記錄幾次循環(huán)?
while?1???????????????????%?迭代最佳閾值分割算法?
????count=count+1;?
????S0=0.0;?n0=0.0;???????????????????%為計(jì)算灰度大于閾值的元素的灰度總值、個(gè)數(shù)賦值?
????S1=0.0;?n1=0.0;???????????????????%為計(jì)算灰度小于閾值的元素的灰度總值、個(gè)數(shù)賦值?
????for?i=1:x
????????for?j=1:y
????????????if?double(Im(ij))>=T
????????????????S1=S1+double(Im(ij));??%大于閾域值圖像點(diǎn)灰度值累加
????????????????n1=n1+1;????????????????%大于閾域值圖像點(diǎn)個(gè)數(shù)累加
????????????else?
????????????????S0=S0+double(Im(ij));??%小于閾域值圖像點(diǎn)灰度值累加
????????????????n0=n0+1;????????????????%小于閥域值圖像點(diǎn)個(gè)數(shù)累加
????????????end?
????????end?
????end??
????T0=S0/n0;?%求小于閥域值均值
????T1=S1/n1;?%求大于閥域值均值
????if?abs(T-((T0+T1)/2))<0.1?????%迭代至?前后兩次閥域值相差幾乎為0時(shí)?停止迭代。
????????break;
????else
???????T=(T0+T1)/2;?????????????????%在閾值T下,迭代閾值的計(jì)算過(guò)程?
???end?
end?
count????????????????????????????????%顯示運(yùn)行次數(shù)
T
i1=im2bw(ImT/255);???????????????%?圖像在最佳閾值下二值化?
subplot(133)imshow(i1)?
title(‘實(shí)驗(yàn)結(jié)果‘)?
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????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
評(píng)論
共有 條評(píng)論