常见的二值化方法

二值化是图像处理中最为常见的处理方式,最近做完毕业设计,然后对图像中二值化处理方式进行整理和分类,主要包括:最大类间方法法(OSTU),迭代阈值法,P分位法,基于最小误差的全局阈值法,局部阈值法,全局阈值与局部阈值相结合的方法;以下使用matlab编写的算法。

1、最大类间方差法:

%二值化方法
%OSTU方法:最大类间方差法
function Img = OstuFun(I)
%二值化处理
level = graythresh(I);
Img = im2bw(I,level);

2、迭代阈值法:

%该函数采用迭代法求取阈值
function Out_img = IterateThresh(I)
I = double(I);
%求出图像的大小
[M,N] = size(I);
%选择初始阈值T
Z0 = max(max(I));
Z1 = min(min(I));
T = (Z0+Z1)/2;
%新的阈值初始赋值为零
TT = 0;
%预先指定范围
allow = 5;
d = abs(T-TT);
%计算大于阈值的灰度总值和小于阈值的灰度总值
S0 = 0;N0 = 0;
S1 = 0;N1 = 0;
%阈值迭代
while(d >= allow)
    for i=1:M
        for j=1:N
            if(I(i,j) >= T)
               S0 = S0+I(i,j);
               N0 = N0+1;
            else
                S1 = S1+I(i,j);
                N1 = N1+1;
            end
        end
    end
    %计算新的阈值
    T0 = S0/N0;
    T1 = S1/N1;
    TT = (T0+T1)/2;
    d = abs(T-TT);
    T = TT;
end
%对图像二值化处理
for i=1:M
    for j=1:N
        if(I(i,j)>=T)
            Out_img(i,j) = 255;
        else
            Out_img(i,j) = 0;
        end
    end
end

3、P分位法

%该

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值