Solicitud para escribir un programa matlab que utilice el algoritmo Otsu para segmentar imágenes
image_1=rgb2gray(image_1);% gris
[m,n]=tamaño ( image_1);% Calcula el número de píxeles, filas y columnas de la imagen, n es el número de columnas.
Escala de grises
num=zeros(1,256); %Almacena el número de apariciones de cada escala de grises
p=zeros(1,256); %Almacena la proporción de cada escala de grises
image_1=double(imagen_1); % doble precisión
para i=1:m
para j=1:n
num (imagen_1(i) ,j)+1)=num(image_1(i,j)+1)+1;% Calcula el número de píxeles en cada nivel de gris
end
end
for i=1:256
p(i)=num(i)/(m*n );% Calcula la proporción de aparición de cada nivel de gris
end
for i=2:256
if p(i)~=0
st=i+1;% implementación Encuentre el valor de gris mínimo cuya aparición la tasa no es igual a 0
break
end
end
for i=256:-1 :1
if p(i)~=0;
nd=i-1;% para encontrar el valor de gris máximo cuya tasa de aparición no es igual a 0
break p>
end
end
% El siguiente programa implementa el método de la mínima suma de cuadrados para encontrar el valor crítico de salida
w= inf; th=0;
for t=st: nd% La relación entre el valor de gris de relación mínimo distinto de cero y el valor de gris de relación máximo distinto de cero
qt1=0; = 0;% relación de píxeles fondo-fondo
u1=0; u2=0;% valor promedio fondo-fondo
v1=0;%
para i=1:t
qt1=qt1+p(i
final
para i=1:t
;u1=u1+i*p(i)/qt1;
fin
para i=1:t
v1=v1+((i -u1)^2)*p(i)/qt1; <
fin
para i=t+1:256
qt2=qt2+p (i);
fin
para i=t+1:256
u2=u2+i*p(i)/qt2; >
fin
para i=t+1:256
v2=v2+((i-u2)^2)*p(i)/qt2
final
if qt1*v1+qt2*v2 th=t; fin fin para i= 1:m para j=1: if (imagen_1(i,j)+ 1>ésimo) imagen_2(i,j)=255 más imagen_2(i,j)=0; > fin fin fin image_2=uint8(image_2);%lectura en lectura en salida transformada figura,imshow(image_2 );%mostrar imagen binarizada