Soy nuevo en el mundo de la imagen procesamiento y quisiera buscar ayuda con un problema que yo no podía entender. La cuestión es la siguiente:

Tengo una gris (negro y blanco) de la imagen ‘grayimage’ que quiero guardar con el imwrite función en Matlab utilizando el formato JPEG. Estoy usando la siguiente sintaxis:

imwrite(grayimage,cmap, 'imagename.jpg', 'jpeg');

Ahora, cuando abro el archivo de imagen imagename.jpg utilización de la imagen de los espectadores no veo una imagen gris. Es de color y una imagen diferente de lo deseado.

Puede alguien sugerir lo que estoy haciendo mal y opciones /parámetros me estoy perdiendo en imwrite?

Pensé en convertir la imagen a RGB y, a continuación, guardarlo en formato jpeg. Que le ayudará?

InformationsquelleAutor Shan | 2011-10-29

3 Comentarios

  1. 3

    Donde hace su cmap viene de? Probablemente se trata de un «color» mapa de colores. Trate de usar un mapa de color gris:

    cmap = colormap('gray');
    imwrite(grayimage,cmap, 'imagename.jpg', 'jpeg');

    Más infos sobre el mapa de colores es: http://www.mathworks.se/help/techdoc/ref/colormap.html

    • Muchas gracias y funciona como un encanto. Creo que estaba utilizando el valor predeterminado colourmap que estaba creando el problema. Con la adición de la línea de cmap = mapa de colores(‘gris’) el mapa de color gris es la correcta.
    • Ahora dame un poco de pulgares arriba plz 🙂
    • Por favor, aceptar esta respuesta si te ayudó a resolver su problema. Que le proporcione una indicación clara de que esta pregunta ha sido respondida satisfactoriamente, proporciona a los futuros visitantes un indicador acerca de la respuesta a la que trabaja (si la hubiere), y le da un poco más la reputación de uno con la respuesta como un incentivo para continuar respondiendo a las preguntas. Gracias!
  2. 3

    a mí me parece que tiene una imagen indexada con un asociado de mapa de colores. Usted podría utilizar la IND2GRAY función para convertir a escala de grises de la imagen antes de guardarla en el disco utilizando IMWRITE:

    I = ind2gray(grayimage,cmap);
    imwrite(I,'imagename.jpg');
    • Amro, mi imagen no está en formato de índice, pero es almacenar en un archivo jpeg. Estoy leyendo que el gris de la imagen desde el archivo jpeg, hacer el cuadro de filtrado en los que la imagen gris, y desea almacenar el resultado de gris de la imagen después de filtrado en el formato jpeg. Puedo ver correctamente la imagen de salida me la imshow pero cuando voy a guardar la misma mediante imwrite en formato jpeg, veo una especie de color de la imagen en el visor de imágenes. Alguna sugerencia?
    • tu pregunta es un poco confuso y carece de información; Usted dice que su imagen no es una imagen indexada, pero sin embargo están utilizando algún tipo de mapa de colores… Usted debe primero entender los diferentes tipos de tipos de imágenes compatible (binario,indexado,escala de grises,truecolor).
  3. 0

    Bienvenido al mundo de la compresión con pérdida.

    Si simplemente quieres una escala de grises jpeg, probablemente lo más sencillo sería instalar el jpegtrans programa y el uso de sus -grayscale opción de jugar con el crominancia canal de la imagen:

    ahorro de gris de las imágenes en formato JPEG usando Matlab imwrite
    ahorro de gris de las imágenes en formato JPEG usando Matlab imwrite

    Una mejor opción sería la de salida mediante un formato de compresión sin pérdida como png.

    (Gracias a la página de Wikipedia en la compresión con pérdida para un perfecto tamaño de imagen de color a trastear con el.)

    • Gracias por la respuesta. Yo soy poco confundido aquí quiero usar la función imwrite en una secuencia de comandos de Matlab para guardar el gris de la imagen en formato jpeg. ¿Hay algún equivalente de jpegtrans en Matlab?

Dejar respuesta

Please enter your comment!
Please enter your name here