图像阈值分割(二值化)

        图像分割是模式识别和计算机视觉中很重要的一个部分,基于阈值的图像分割具有简单、计算量小、效率高等特点,在实际图像处理中具有广泛的应用。经过国内外学者的广泛努力,已经提出了数以百计的阈值分割的算法,依据阈值分割算法本身所具有的准则或特性,可以分为迭代法、最大类间误差法(Otsu)、最大熵法等。本文主要介绍以上几种阈值分割方法。

(一)迭代法

     迭代法是一种比较简单的阈值分割方法,其思想:设置阈值的初始值为图像灰度最大值和最小值的平均,根据阈值划分图像为目标和背景,并分别将其灰度值求和,计算目标和背景的平均灰度,并判断阈值是否等于目标和背景平均灰度的和的平均,若相等,则阈值即为其平均,否则,将阈值设置为目标和背景灰度平局值的和的一半,继续迭代,直至计算出阈值。

    算法过程:

    1、计算图像的最大灰度值Zmax、最小灰度值Zmin,求平均得到初始阈值tk。

               zmax=max(max(I));zmin=min(min(I));

     tk=(zmax+zmin)/2;

  2、根据阈值划分图像为目标和背景,并分别计算其灰度均值

       z1=foregroundsum/iforeground;
       z2=foregroundsum/ibackground;

        tktmp=uint8((z1+z2)/2);

    3、判断tk是否等于tktmp,若相等则退出循环,阈值为tktmp,否则,将tktmp赋给tk,转2继续执行迭代。

    参考代码:

close all;%关闭所有窗口
clear;%清除变量的状态数据
clc;%清除命令行

I=imread('rice.png');
subplot(1,2,1);
imshow(I);
title('1 rice的原图');

%迭代式阈值分割 
zmax=max(max(I));%取出最大灰度值
zmin=min(min(I));%取出最小灰度值
tk=(zmax+zmin)/2;
bcal=1;
[m,n]=size(I);
while(bcal)
    %定义
  • 7
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值