Convertir una Imagen de Color a Binaria en GNU Octave

En este post se muestra un pequeño algoritmo programado en GNU Octave que nos servirá para convertir una imagen de escala de grises a blanco y negro (Binaria).

Primero leemos la imagen, y en el caso de que esté a color, la convertiremos a escala de grises. También obtenemos las dimensiones de la imagen para poder procesarla a continuación.

imagenColores=imread('/home/analuz/Imágenes/OctaveIcon.jpg');
imagenGrises = rgb2gray(imagenColores);
[renglones, columnas, t] = size(imagenGrises);
imagenGrises=double(imagenGrises);


El siguiente doble ciclo se encarga de realizar las comparaciones del pixel obtenido en cada iteración con el umbral(que en este caso particular se decidió que fuese 200, pero puede ser arbitrario según se necesite). Según esté por arriba o por debajo del umbral, decide si el color será blanco o negro.

for i=1:renglones
for j=1:columnas
if imagenGrises(i,j)<=200
imagenBinaria(i,j) = 0;
else
imagenBinaria(i,j) = 255;
end
end
end


Finalmente, convertimos los datos de las matrices que usamos a enteros de 8 bits (256 niveles de gris) y los plasmamos como imagen.

imagenGrises = uint8(imagenGrises)
imagenBinaria = uint8(imagenBinaria);
figure,subplot(1,3,1),imshow(imagenColores),title('Imagen Original');
subplot(1,3,2),imshow(imagenGrises),title('Imagen Grises');
subplot(1,3,3),imshow(imagenBinaria),title('Imagen Binaria');


El resultado al ejecutar, debe parecerse a la siguiente imagen:

Comentarios

  1. te daria like pero no se puede aun asi gracias me sirvio de mucho

    ResponderEliminar

Publicar un comentario

Entradas populares