找回密码
 注册
关于网站域名变更的通知
查看: 1697|回复: 5
打印 上一主题 下一主题

基于matlab最大类间方差法(otsu)图像分割

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-8 13:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
3 A& M/ \' U% F+ V
一、简介. Y8 @3 S/ k9 w6 f% T7 |

6 [( p9 o! w8 T: {4 n0 n8 o2 R. Y$ V3 e: ?; D& {
由Otsu(大津展之)于1978年提出的最大类间方差法,是引起较多关注的一种阈值选取方法。它是在判决分析或最小二乘原理的基础上推导出来的。
  S' T; T& P- R5 @8 s# f( Q6 W! I4 r7 G  k) v
参考文献:
& [* e# s! e* X1 C/ H: D5 Z. j5 L4 t4 `- M
[1] Otsu N. A threshold selection method from gray-level histogram. IEEE Trans,1979;SMC-9;62-66 下载地址
9 N9 @) J  K. C7 R& K, P2 f" i4 J5 [8 o+ _* U
算法思想:% E; @6 Q6 t' L
; ]" {+ b; z4 j- n
假设一幅图像有L个灰度级[1,2,…,L]。灰度级为i的像素点的个数为ni,那么总的像素点个数就应该为N=n1+n2+…+nL。为了讨论方便,我们使用归一化的灰度级直方图并且视为这幅图像的概率分布:
- `. I3 Y2 T2 o7 B& e& O9 ^! V5 j: [- J; Y

, l, U& v; E) K+ ?8 u1 O) t
" R6 n% D1 ]) N1 E$ H( a! N' ~$ K+ p3 E9 j
( N$ _3 Y2 L% `* Y% x0 \
4 V3 V6 S. G( d2 f0 w/ I) n' i

3 k0 ?- m" c% O8 R9 [7 k
) ^7 x1 [' }: ]  x% ?# U + n$ |8 C3 ?( Q; v+ {# f
, V; k& Y) C, G, }! d7 S- y5 \& C

* L8 a) [" {% h二、源代码8 y1 H* r. o4 }8 o& {- E
) F3 P( M" w3 a1 a
  • clear
  • close all
  • clc
  • I=imread('rice.png');
  • [m,n]=size(I);
  • N=m*n;
  • L=256;
  • for i=1:L
  •     count(i)=length(find(I==(i-1)));
  •     f(i)=count(i)/(N);  %每个灰度对应的概率,i=1,对应灰度值为0(i-1)
  • end
  • for i=1:L
  •     if count(i)~=0
  •         st=i-1;   %开始的灰度值
  •         break;
  •     end
  • end
  • for i=L:-1:1
  •     if count(i)~=0
  •         nd=i-1;   %结束的灰度值
  •         break;
  •     end
  • end
  • p=st;   q=nd-st+1;
  • u=0;
  • for i=1:q
  •     u=u+f(p+i)*(p+i-1);  %u是像素的平均值
  •     ua(i)=u;           %ua(i)是前i+p个像素的平均灰度值  (前p个无取值)
  • end;
  • for i=1:q
  •     w(i)=sum(f(1+p:i+p));  %w(i)是前i个像素的累加概率,对应公式中P0
  • end;
  • w=w+eps;
  •    %对照sigmaB的公式写出目标函数。实际是遍历所有值
  • d=(w./(1-w)).*(ua./w-u).^2;
  • [y,tp]=max(d);  %可以取出数组的最大值及取最大值的点
  • th=tp+p;
  • figure;imshow(im2bw(I,th/255),[]);  title('最大类间方差');
  • %% matlab自带函数
  • figure;imshow(im2bw(I,graythresh(I)),[]);  title('matlab自带');
  • & }# u  b" n: J
         
, Y9 U) I+ X* O4 G5 c: Z) f5 g- U; n8 ^
. t  \2 |8 G: V' u+ l5 s+ O
三、运行结果2 `- n7 G; E1 j7 h! L1 v

1 F  t7 H4 B  m9 V7 o7 k! H
9 W) I7 L2 {% F3 y  ?
7 P/ N5 f7 N4 _
6 e9 l/ _$ \" @. o8 ?

该用户从未签到

2#
发表于 2021-6-8 15:43 | 只看该作者
基于matlab最大类间方差法(otsu)图像分割
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-6-8 15:44 | 只看该作者
    基于matlab最大类间方差法(otsu)图像分割

    该用户从未签到

    4#
    发表于 2021-6-8 15:45 | 只看该作者
    基于matlab最大类间方差法(otsu)图像分割

    该用户从未签到

    5#
    发表于 2021-6-11 14:46 | 只看该作者
    图像分割      
    ) Q  k0 z$ n1 C; Y' I9 h. E/ d
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    6#
    发表于 2021-8-26 18:30 | 只看该作者
    谢谢您,学习中
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 22:40 , Processed in 0.171875 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表