matlab任选阈值分割

matlab任选阈值分割,第1张

I=imread('test.jpg'迟手)

subplot(1,3,1)

imshow(I)

title('原图')

I1=rgb2gray(I)

subplot(1,3,2)

imhist(I1)

title('直方培旦燃图')

level=graythresh(I)

g=im2bw(I,level)%最佳配虚阈值level subplo.

function threshold=ostu(filename)

x=imread(ff)

%figure

%imshow(x)

[m,n]=size(x)

N=m*n

num=zeros(1,256)

p=zeros(1,256)

for i=1:m

for j=1:n

num(x(i,j)+1)=num(x(i,j)+1)+1

end

end

for i=0:255

p(i+1)=num(i+1)/N

end

totalmean=0

for i=0:255

totalmean=totalmean+i*p(i+1)

end

maxvar=0

for k=0:255

kk=k+1

zerosth=sum(p(1:kk))

firsth=0

for h=0:k

firsth=firsth+h*p(h+1)

end

var=totalmean*zerosth-firsth

var=var*var

var=var/(zerosth*(1-zerosth)+0.01)

var=sqrt(var)

if(var>maxvar)

maxvar=var

point=k

end

end

threshold=point

for i=0:255

p(i+1)=num(i+1)/N

end

totalmean=0

for i=0:255

totalmean=totalmean+i*p(i+1)

end

maxvar=0

for k=0:255

kk=k+1

zerosth=sum(p(1:kk))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12288995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存