Tengo que escribir un programa que convierte la intensidad de las imágenes en blanco y negro. Me imaginé que podría tomar un valor de la matriz original, yo, y si es por encima de la media del valor de la celda correspondiente en otra matriz igual a 1, de lo contrario igual a cero:

for x=1:X
    for y=1:Y
        if I(x,y)>mean(I(:))
            bw(x,y)=1;
        elseif I(x,y)<mean(I(:))
            bw(x,y)=0;
        end
    end
end
image(bw)

Por desgracia, la imagen que tengo es todo negro. Por qué?

Yo es en uint8, por cierto. 2-D Lena.imagen tiff

uint8 significa que el blanco sería 255, no 1.

OriginalEl autor Kaya311 | 2013-12-13

3 Comentarios

  1. 4

    Uso imagesc(bw) (en lugar de image(bw)). Que ajusta automáticamente la imagen de rango.

    También, tenga en cuenta que puede reemplazar todo el código por este vectorizados, más eficiente de la versión:

    bw = double(I>mean(I(:)));
    Gracias! Esto funciona 🙂

    OriginalEl autor Luis Mendo

  2. 8

    Usar este :

    bw = im2bw(I, graythresh(I));

    Aquí la documentación de im2bw;

    utilizando imshow(I,[]);, no evaluar la imagen entre 0 y 255, pero entre min(I(:)) y max(I(:))

    EDITAR

    Puede cambiar graythresh(I) por cualquier otro nivel. Todavía puede utilizar la media de la imagen. (Normalizar entre 0 y 1).

    maxI = max(I(:));
    minI = min(I(:));
    
    bw = im2bw(I,(maxI - mean(I(:)))/(maxI - minI));

    OriginalEl autor Vuwox

  3. 2

    Uno de los problemas es que siempre el uso de la mean hasta entonces.

    Lo que se quiere hacer es hacerlo antes de que el bucle:

    myMean = mean(I(:));

    Y, a continuación, reemplazar todas las ocurrencias de mean(I(:)) por myMean.

    Mediante la ejecución de significar que en la actualidad definitivamente va a demorar las cosas, pero no va a ser la razón por la que todo se convierte en negro.

    Lo distiortion a qué te refieres? I no se sobrescriben. Por supuesto es ineficiente, pero no es una ejecución media; mean(I(:)) es el mismo valor cada vez que
    Tienes razón, en ese caso, mi punto es menos importante. Ha editado mi respuesta.
    Encontrar a decir antes de que lo hace MUCHO más rápido.

    OriginalEl autor Dennis Jaheruddin

Dejar respuesta

Please enter your comment!
Please enter your name here