迭代法求取阈值进行图像分割——MATLAB

阅读: 评论:0

迭代法求取阈值进⾏图像分割——MATLAB
@迭代法求取阈值进⾏图像分割
迭代法求取阈值进⾏图像分割
中国急救网它的主要思想是:图像分割后的两部分A和B的均值和基本保持稳定。也就是说,随着迭代的进⾏,取 [mean(A)+mean(B)]/2 最终的收敛值作为分割阈值。
在这⾥有⼀点需要注意:
为了提⾼收敛速度,初始阈值T0的选择要稍微注意些。当⽬标与背景的⾯积相当时,可以将初始阈值T0设置为整个图像的平均灰度值;当⽬标与背景的⾯积相差较⼤时,更好地选择是将初始阈值T0设置为最⼤灰度值和最⼩灰度值的中间值。乙酸乙酯实验装置
迭代算法:
1. 选择⼀个初始阈值T0;
2. 根据阈值T0将图像分为A和B两部分。分别求出A和B的平均灰度值A_average和B_average。
3. 计算 T1= (A_average+B_average)/2 ,⽐较 abs(T1-T0)<1(或更⼩值),若果成⽴,则停⽌迭代,此时的T1就是分割阈值;否
则,将T1赋值给T0(T0=T1),继续从第⼆步开始。
算法实现:
A = imread('rice.png');
丝光沸石
figure;
subplot(121);imshow(A);title('原图')风切变
T = mean2(A);  %取均值作为初始阈值
done = false;  %定义跳出循环的量
i = 0;
% while循环进⾏迭代
while ~done
r1 = find(A<=T);  %⼩于阈值的部分
r2 = find(A>T);  %⼤于阈值的部分
Tnew = (mean(A(r1)) + mean(A(r2))) / 2;  %计算分割后两部分的阈值均值的均值
后退哥
大象洗完澡为什么要往身上弄泥巴done = abs(Tnew - T) < 1;    %判断迭代是否收敛
T = Tnew;      %如不收敛,则将分割后的均值的均值作为新的阈值进⾏循环计算
i = i+1;
end
A(r1) = 0;  %将⼩于阈值的部分赋值为0
A(r2) = 1;  %将⼤于阈值的部分赋值为1  这两步是将图像转换成⼆值图像
subplot(122);imshow(A,[]);title('迭代处理后')
处理结果:
该算法实现的处理结果,还是⽐较理想的。

本文发布于:2023-08-16 13:31:57,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/367479.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:阈值   图像   分割   均值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图