資源簡介
改進的Bradley二值化matlab程序,相比bersen或otsu算法,有較快的速率和較好的二值化效果,可以克服一定的光照不均。
代碼片段和文件信息
%[Ibwtime]=Bradley(local)
%算法的流程就是首先得到這個求和面積表,?其次遍歷所有的像素,?然后以這些像素為
%中心點,?計算S*S大小的矩形的平均顏色,?用來和當前像素比較即可。這個流程可以
%說是相當精煉.這里S是寬度的4分之一,?而t是15(亮底暗字),-15(暗底亮字)
%t:當前點灰度值比均值高出t個百分點
%local:輸入圖像
%Ibw:輸出二值圖(0,1)或(0,255)
function?[Ibwtime]=Bradley(local)
tic
if?size(local3)>1
????grayf?=?double(rgb2gray(local));%灰度轉化
else
????grayf?=?double(local);
end
[heightwidth]?=?size(grayf);
A?=?height*width;
num=zeros(1256);
s?=?round(width/4);%1/4
s2?=?round(s/2);
t?=?15;%默認亮底暗字
????for?i=0:255
????????for?j=1:height
????????????for?m=1:width
????????????????if?grayf(jm)==i
????????????????????num(i+1)=num(i+1)+1;???%i為0到255統計個灰度值的個數
????????????????end
????????????end
????????end
????end
????
if?sum(num(1:68))/A>0.3
????t?=?-15;
end
%?create?the?integral?image?
- 上一篇:改進的bernsen二值化算法
- 下一篇:窗口傅里葉正反變換matlab程序
評論
共有 條評論