声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1285|回复: 1

[综合讨论] 谁比较清楚大津法

[复制链接]
发表于 2006-5-19 00:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
那位大哥大姐会用MATLAB编大津法?能给我个程序最好了,我学的不好,不会编!还请高手帮帮我,在下感激不尽

[ 本帖最后由 eight 于 2007-6-25 17:16 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-6-25 15:03 | 显示全部楼层
function y1=OTSU(image,th_set)
%a2=imread('color1.bmp');
gray=rgb2gray(image);%原图像的灰度图
low_high=stretchlim(gray);%增强图像,似乎也不是一定需要
gray=imadjust(gray,low_high,[]);
% subplot(224);imshow(gray);title('after adjust');
count=imhist(gray);
[r,t]=size(gray);
n=r*t;
l=256;
count=count/n;%各级灰度出现的概率
for i=2:l
        if count(i)~=0
            st=i-1;
            break
        end
end
%以上循环语句实现寻找出现概率不为0的最小灰度值
for i=l:-1:1
        if count(i)~=0;
            nd=i-1;
            break
        end
end
%实现找出出现概率不为0的最大灰度值
f=count(st+1:nd+1);
p=st;q=nd-st;%p和分别是灰度的起始和结束值
u=0;
for i=1:q;
        u=u+f(i)*(p+i-1);
        ua(i)=u;
end
%计算图像的平均灰度值
for i=1:q;
        w(i)=sum(f(1:i));
end
%计算出选择不同k的时候,A区域的概率
d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差
[y,tp]=max(d);%求出最大方差对应的灰度级
th=tp+p;
if th<th_set
        th=tp+p;
else
        th=th_set;           %根据具体情况适当修正门限
end
y1=zeros(r,t);
for i=1:r
        for j=1:t
            x1(i,j)=double(gray(i,j));
        end
end
for i=1:r
        for j=1:t
            if (x1(i,j)>th)
                y1(i,j)=x1(i,j);
            else
                y1(i,j)=0;
            end
        end
end
%上面一段代码实现分割
% figure,imshow(y1);
% title('灰度门限分割的图像');
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 05:28 , Processed in 0.059065 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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