Binarizacion de Imagenes

La binarizacion de imagenes es una tecnica del procesamiento de imagenes que consiste en un proceso de reduccion de la informacion de una imagen digital a dos valores : 0 (negro) y 255(blanco).
Esta tecnica consiste en comparar cada pixel de la imagen con un determinado umbral (valor limite que determina si un pixel sera de color blanco o negro). Los valores de la imagen que sean mayores que el umbral toman un valor 255 (blanco), el resto de pixeles toman valor 0(negro).



Por ejemplo, si queremos binarizar esta imagen (la conocida fotografia de Lena) , primero debemos convertirla a escala de grises y luego aplicar la Binarizacion .

CODIGO EN MATLAB

Binarizacion.m
function [I]=Binarizacion(imagen,umbral)
[f,c]=size(imagen);
for i=1:f
for j=1:c
if double(imagen(i,j))<umbral
I(i,j)=0;
else
I(i,j)=255;
end
end
end
I=uint8(I);


En la ventana de comandos de MATLAB escribe lo siguiente:


i=imread('ruta');
g=rgb2gray(i);
b=Binarizacion(g,95);
imshow(b);


Nota: en la primera linea donde dice ruta escribe la ruta de la imagen .Ejemplo:
i=imread('C:\Documents and Settings\Carlos\Escritorio\lena.jpg');


RESULTADOS

La imagen binarizada es la siguiente :


Share This Post →

5 comentarios:

  1. Hola Gran trabajo el que realizas en este blog!!
    Quería comentarte que yo estoy publicando también algunos programas basados en procesamiento de imagen con Matlab como reconocimiento de monedas u otros similares.
    Además he hecho un pequeño tutorial sobre este tema y quería comentártelo sobretodo lo de los programas que he realizado para que les eches un vistazo si puedes y me comentes que tal los ves y si podría mejorar algún aspecto:
    http://matlabimagenes.blogspot.com.es/

    ResponderEliminar
  2. Que significa este error? Gracias de antemano.

    Error using rgb2gray>parse_inputs (line 88)
    RGB must be a m x n x 3 array.

    Error in rgb2gray (line 35)
    X = parse_inputs(varargin{:});

    ResponderEliminar
    Respuestas
    1. significa que tu imagen es monocromatica y no se puee convertir de RGB a grises. Es decir, ya està en escala de grises

      Eliminar
  3. Estas desperdiciando el potencial de matlab y utilizando for anidado inecesario ya que matlab es un laboratorio de matrices.
    Tu codigo se puede simplificar mucho:
    i=imread('ruta');
    g=rgb2gray(i);
    b=g>=umbral;
    b=double(b);
    imshow(b);

    Por nada

    ResponderEliminar

Powered By Blogger |   Designed By Blogger Templates
DMCA.com