• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Matlab
  • 标签: 二值化  matlab  

资源简介

改进的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 

评论

共有 条评论