阈值分割之迭代法代码实现详解

阈值分割之迭代阈值法

clear,clc,close all;
Image=im2double(rgb2gray(imread('lotus.jpg')));
figure,imshow(Image),title('原始图像');
T=(max(Image(:))+min(Image(:)))/2;%初始阈值
equal=false;
while ~equal
    ro=find(Image>=T);
    rb=find(Image<T);
    NewT=(mean(Image(ro))+mean(Image(rb)))/2;%计算新的阈值
    equal=abs(NewT-T)<1/256;%迭代截止条件
    T=NewT;
end
result=im2bw(Image,T);%对分割图像进行二值化处理
figure,imshow(result),title('迭代方法二值化图像 ');
imwrite(result,'lotus1diedai.jpg');

原图
在这里插入图片描述
分割后图像
在这里插入图片描述
(1)首先读入图像数据转为灰度图Image

(2)直接设定初始阈值,就是最大灰度值与最小灰度值的中间值

(3)在循环体求出前景图和背景图的坐标,利用find函数实现,返回一个值返回的就是坐标

(4)然后Image(ro)和Image(rb)分别就是前景图和背景图的目标值,对它们用mean函数取均值然后再平均就是新的阈值

(5)在循环里面设定一个退出循环条件,可以设定上一次的阈值T和这一次的阈值T相差多少就退出循环即可。

(6)找到了阈值T,直接对它进行二值化即可

只要理解了迭代法找阈值,这个代码就超级容易实现了

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值