ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

matlab动手实现ostu大津法

2021-11-05 22:32:20  阅读:157  来源: 互联网

标签:mg p1 end 大津法 mk matlab counts ostu 256


该ostu方法实现的原理是参考的冈萨雷斯《数字图像处理第四版》的第538页的ostu阈值处理的原理介绍,如果有该书,可以对照参考,
原理在此不赘述


clear all
I=imread("222.JPG");
G=rgb2gray(I);
[h,w]=size(G);

[count,x]=imhist(G);

counts=count/(h*w);

% stem(x,counts)

%选定一个阈值K,利用K来划分

optk=1;
optsigma=0;
for k=1:256
    %像素被分给类1,2的概率
    p1=0;
    for i=1:k
        p1=p1+counts(i); 
    end
    %计算k级的累计平均值
    mk=0;
    mk=1*counts(1);
    for i=2:k
        mk=mk+i*counts(i);
    end
    %全局平均灰度
    mg=0;
    mg=1*counts(1);
    for i=2:256
        mg=mg+i*counts(i);
    end
    %计算类间方差
    sigma=(mg*p1-mk)^2/(p1*(1-p1));
    
    if sigma>optsigma
       optsigma=sigma;
       optk=k;
    end


end

%接下来是与系统提供的函数对比 0.4844和0.4824,相差不大
optk/256
bw=im2bw(G,optk/256);
imshow(bw)

thresh=graythresh(G)


标签:mg,p1,end,大津法,mk,matlab,counts,ostu,256
来源: https://blog.csdn.net/teidix/article/details/121171944

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有