Otsu算法实现代码Matlab
时间: 2023-12-24 13:12:46 浏览: 94
OTSU算法二维matlab实现
我可以回答你的问题。以下是 Otsu 算法的实现代码(Matlab 版):
function [ thresh ] = otsu( img )
%OTSU Summary of this function goes here
% Detailed explanation goes here
img=double(img);
[m,n]=size(img);
hist=zeros(256,1);
for i=1:m
for j=1:n
hist(img(i,j)+1)=hist(img(i,j)+1)+1;
end
end
w0=0;
u0=0;
u1=0;
sigma=zeros(256,1);
for i=1:256
w0=w0+hist(i);
u0=u0+(i-1)*hist(i);
if(w0~=0)
u0=u0/w0;end
w1=m*n-w0;
for j=i+1:256
w1=w1+hist(j);
u1=u1+(j-1)*hist(j);
end
if(w1~=0)
u1=u1/w1;end
sigma(i)=w0*w1*(u0-u1)^2;
end
thresh=find(sigma==max(sigma))-1;
end
希望这对你有帮助。如果您有其他问题,可以继续问我。
阅读全文