資源簡介
一個很實用的圖像二值化的最大類方差法,絕對可以用
代碼片段和文件信息
clear;
warning?off;
I=imread(‘D:\mytest\true1.jpg‘);
I_gray=rgb2gray(I);%rgb轉灰度
subplot(121);
imshow(I_gray)title(‘灰度圖像‘);
Y3=medfilt2(I_gray[3?3]);
I_double=double(Y3);%轉化為雙精度
[widlen]=size(I_gray);%wid為行數(shù),len為列數(shù)
colorlevel=256;??%灰度級
hist=zeros(colorlevel1);%直方圖?256*1的0矩陣
%threshold=128;?%初始閾值
%計算直方圖
for?i=1:wid
????for?j=1:len
????????m=I_gray(ij)+1;
????????hist(m)=hist(m)+1;
????end
end
hist=hist/(wid*len);%直方圖歸一化
%miuT為總的平均灰度,hist[m]代表像素值為m的點個數(shù)
miuT=0;
for?m=1:colorlevel
????miuT=miuT+(m-1)*hist(m);
end
xigmaB2=0;%用于保存每次計算的方差,與下次計算的方差比較大小
for?mindex=1:colorlevel
????threshold=mindex-1;
????omega1=0;?%前景點所占比例
????omega2=0;?%背景點所占比例
????for?m=1:threshold-1
??????????omega1=omega1+hist(m);%計算前景比例
????end
????omega2=1-omega1;%計算背景比
評論
共有 條評論