Tengo una imagen en escala de grises que sólo tiene los valores 60 y 117. ¿Cómo puedo convertir la imagen a sólo black y white sin graylevels?

He probado el matlab función gray2ind, pero no obtener el resultado esperado.

Gracias.

InformationsquelleAutor Simplicity | 2013-04-27

1 Comentario

  1. 4

    Intentar im2bw(img, level) con level = 0.5.

    Esta es una función de matlab que se toma una imagen en escala de grises img, se aplica un umbral de level (un valor entre [0,1]) y devuelve una imagen en blanco y negro.

    Esta función es parte del Procesamiento de la Imagen caja de herramientas. Su caso es bastante sencilla que también se podría tratar de algo como:

    bwImg = false(size(img));
    bwImg(img == 117) = true;

    He editado el anterior para establecer los valores igual a false/true para imitar más de cerca de Matlab im2bw() que devuelve una matriz de logical valores en lugar de ints.

    2ª Edición: Modificado el bloque de código para reflejar las mejoras sugeridas por @Amro

    • O el uso de grathresh() para determinar level.
    • puesto que la imagen tiene sólo dos niveles, se puede simplificar como: bwImg = (img==117);. btw inicializar con false(size(img)) en lugar de zeros para obtener lógica de la matriz de
    • Gracias por sus respuestas. Puedo extender el proceso a 3,4,5,…etc los valores? Mi pregunta aquí: stackoverflow.com/questions/16252146/…
    • Usted debe ser capaz de extender a cualquier número de valores por el cambio de bwImg(img == 117) = true a bwImg(img > threshold) = true para cualquier valor que usted elija para threshold.
    • J. Smith. ¿Cómo se podía elegir el umbral? Es empírica? Digamos que tenemos tres valores de los píxeles en una imagen: 17, 56, y 180. Lo que puede ser un umbral adecuado para que? Sería conveniente, por ejemplo, para establecer el umbral como el valor máximo entre los píxeles? Gracias
    • La elección del umbral es completamente dependiente de sus intenciones en la conversión de una imagen en blanco y negro, para empezar. En su ejemplo, usted realmente sólo tienen 2 significativa de los valores de umbral en (17, 56). Umbral por debajo de 17 o mayor a 180 daría como resultado una mala imagen. En una aplicación más amplia que podría examinar un histograma de la original de los valores de los píxeles a través de hist(img) para tener una mejor idea para un valor de umbral.

Dejar respuesta

Please enter your comment!
Please enter your name here