1.直方圖雙峰法
2.最大類間方差法
3.迭代法
閾值化圖像分割是一種最基本的圖像分割方法,其基本原理就是選取一個或多個處于灰度圖像范圍之中的灰度閾值,然后將圖像中各個像素的灰度值與閾值比較,并根據(jù)比較的結(jié)果將圖像中的對應(yīng)像素分成兩類或多類,從而把圖像劃分成互不重疊的區(qū)域集合,達成圖像分割的目的。全局閾值分割和局部閾值分割兩種。若根據(jù)分割算法常用的分割方法有圖雙峰法、最大類間方差法、迭代法等
一、直方圖雙峰法
該方法依據(jù)是圖像的直方圖,通過對直方圖進行各種分析來實現(xiàn)對圖像的分割。圖像的直方圖可以看作是像素灰度值概率分布密度函數(shù)的一個近似,假設(shè)一幅圖像僅包含目標和背景,那么它的直方圖所代表的像素灰度值概率密度分布函數(shù)實際上就是對應(yīng)目標和背景的兩個單峰分布密度函數(shù)的和。圖像二值化過程就是在直方圖上尋找兩個峰、一個谷來對一個圖像進行分割,也可以通過兩級函數(shù)來近似直方圖。
clc; %clc的作用就是清屏幕
clear; %clear是刪除所有的變量
close all; %close all是將所有打開的圖片關(guān)掉。
i=imread('E:\我的桌面\MATLAB\練習\4.jpg'); %讀取圖像
I=rgb2gray(i);
newI=im2bw(I,220/255); %雙峰法
subplot(121),
imshow(I) ;
title('原圖像')
subplot(122),
imshow(newI) ;
title('雙峰法')
二、最大類間方差法
從統(tǒng)計意義上講,方差是表征數(shù)據(jù)分布不均衡的統(tǒng)計量,可通過閾值對這類問題進行分割。最大類間方差法以圖像的灰度直方圖為依據(jù),以目標和背景的類間方差最大為閾值選取準則,綜合考慮了像素鄰域以及圖像整體灰度分布等特征關(guān)系,以經(jīng)過灰度分類的像素類群之間產(chǎn)生最大方差時候的灰度數(shù)值作為圖像的整體分割閾值。顯然,適當?shù)拈撝凳沟脙深悢?shù)據(jù)間的方差越大越好,表明該閾值的確將兩類不同的問題區(qū)分開了,同時希望屬于同一類問題的數(shù)據(jù)之間的方差越小越好,表明同一類問題具有一定的相似性。
clc; %clc的作用就是清屏幕
clear; %clear是刪除所有的變量
close all; %close all是將所有打開的圖片關(guān)掉。
i=imread('E:\我的桌面\MATLAB\練習\2.jpg'); %讀取圖像
I=rgb2gray(i);
subplot(121),
imshow(I);
title('原始圖像')
level=graythresh(I);
BW=im2bw(I, level); %最大類間方差法分割圖像
subplot(122),
imshow(BW)
title('最大類間方差法分割圖像')
disp(strcat('graythresh計算灰度閾值:', num2str(uint8(level*255))))
三、迭代法
迭代法選取閾值的方法為:初始閾值選取為圖像的平均灰度T0,然后用T0∞將圖像的像素點分作兩部分,計算兩部分各自的平均灰度,小于T0的部分為TA,大于T0的部分為TB,求TA和TB的平均值T1,將T1作為新的全局閾值代替T0,重復(fù)以上過程,如此迭代,直至Tk收斂。具體實現(xiàn)時,首先根據(jù)初始開關(guān)函數(shù)將輸入圖逐個圖像分為前景和背景,在第一遍對圖像掃描結(jié)束后,平均兩個積分器的值以確定一個閾值。用這個閾值控制開關(guān)再次將輸入圖分為前景和背景,并用做新的開關(guān)函數(shù)。如此反復(fù)迭帶直到開關(guān)函數(shù)不在發(fā)生變化,此時得到的前景和背景即為最終分割結(jié)果。文章來源:http://www.zghlxwxcb.cn/news/detail-518146.html
clc; %clc的作用就是清屏幕
clear; %clear是刪除所有的變量
close all; %close all是將所有打開的圖片關(guān)掉。
i=imread('E:\我的桌面\MATLAB\練習\2.jpg'); %讀取圖像
f=rgb2gray(i);
subplot(121);
imshow(f);
title('原始圖像');
f=double(f); %下面進行迭代閾值二值化
T=(min(f(:))+max(f(:)))/2;
done=false;
i=0;
while ~done
r1=find(f<=T);
r2=find(f>T);
Tnew=(mean(f(r1))+mean(f(r2)))/2;
done=abs(Tnew-T)<1;
T=Tnew;
i=i+1;
end
f(r1)=0;
f(r2)=1;
subplot(122);
imshow(f);
title('迭代閾值二值化圖像');
有時候幾種方法可能取得是同一種效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-518146.html
到了這里,關(guān)于matlab中圖像分割技術(shù)之二閾值分割的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!