11 de enero de 2011

Mostrar imagen en escala de grises

Existen dos formas principales para poder obtener una imagen a color y convertirla en escala de grises.

1) Cargarla directamente como una imagen en escala de grises

Código:

import cv
imagen_gris=cv.LoadImage("python.png",cv.CV_LOAD_IMAGE_GRAYSCALE)
cv.ShowImage("imagen",imagen_gris)
cv.WaitKey(0)

El código es muy similar al que se usa cuando se quiere cargar una imagen. La única diferencia es el segundo argumento que se le pasa a la función LoadImage, El cual indica que queremos que la imagen se cargue en escala de grises.

2) Cargarla y luego convertirla a escala de grises

Código:

import cv
imagen=cv.LoadImage("python.png")
imagen_gris=cv.CreateImage(cv.GetSize(imagen),cv.IPL_DEPTH_8U, 1)
cv.CvtColor(imagen,imagen_gris,cv.CV_RGB2GRAY)
cv.ShowImage("imagen",imagen)
cv.WaitKey(0)

Este código nos brinda la posibilidad de mantener la imagen original a color en una variable, y la imagen en escala de grises en otra. Primero debemos crear el contenedor de la imagen en escala de grises con la función cv.CreateImage la cual necesita 3 argumentos: tamaño, profundidad, canales.
El tamaño es una tupla que contiene los valores del alto y el ancho de la imagen, la profundidad se refiere a la profundidad de color que usara la imagen, y por ultimo como nos referimos a una imagen en escala de grises solo necesita un canal a diferencia de las imágenes RGB que necesitan 3.


Luego de creada la imagen, usamos la función cv.CvtColor para convertir  "imagen" a escala de grises y meterla en "imagen_gris".


El resultado en ambos casos es el mismo.

Resultado:  




Descargar el código

1 comentario:

  1. y para convertir una video en vivo a escala de grises desde la webcam con la funcion capture = cv.CaptureFromCAM(0) como se convierte

    ResponderEliminar