Вы находитесь на странице: 1из 4

Visin Artificial, Instituto Tecnolgico Metropolitano

Carlos A. Madrigal

EJERCICIOS DE OPERADORES UMBRAL

Ejercicio #3
Se carga una imagen en color y se transforma a escala de grises, al final
se grafican las 2 imgenes.
1. Mat imagen, ImagenGris, imagenClonada;
2. namedWindow("Original",1);
3. namedWindow("Gris",1);
4. namedWindow("Clon",1);
5. imagen= imread("c:\\lena.jpg");
6. imagenClonada = imagen.clone();
7. ImagenGris.create(imagen.rows, imagen.cols, CV_8UC1);
8. cvtColor(imagen, ImagenGris, CV_RGB2GRAY);
9. imshow("Original",imagen);
10.
imshow("Gris",ImagenGris);
11.
imshow("Clon", imagenClonada);
12.
waitKey(10000);
13.
getchar();
14.
return 0;

En 1, se crea una estructura llamada Imagen, ImagenGris e imagenClonada


del tipo MAT.
En 2, 3 y 4 se crean ventanas llamadas Original, Gris y Clonada..
En 5 se lee la imagen "lena.jpg" y se guarda en Imagen.
En 6 se se realiza una copia de Imagen y se guarda en imagenClonada.
En 7 ImagenGris.create Crea un espacio en memoria con una resolucin
espacial igual a la imagen cargada Imagen, pero con un solo canal (Para
guardar imgenes en escala de grises).
En 8 cvtColor Convierte la imagen a escala de grises haciendo una suma
ponderada para cada componente de color mediante la formula.
Gray= 0.2999 * R + 0.5870 * G + 0.1140 * B

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0)

Convierte una imagen de un espacio de color a otro. Los argumentos de


esta funcin son:

Visin Artificial, Instituto Tecnolgico Metropolitano

Carlos A. Madrigal

src

Imagen de entrada de 8 bits, 16 bits o punto flotante

dst

Imagen destino de la misma resolucin en amplitud de src

code Tipo de conversin de color, el cual puede hacer conversiones entre

espacios de
color: Gris, RGB, XYZ, YCrCb, HSV, Lab, Bayer. Para esto se utilizan los
siguientes codigos de conversin CV_RGB2GRAY, CV_GRAY2BGR, CV_BGR2XYZ,
CV_XYZ2BGR, CV_BGR2YCrCb, CV_YCrCb2BGR, CV_BGR2HSV, CV_HSV2BGR
dstCn Nmero de canales en la imagen dst; si este es 0, el nmero de canales
es el de src y code.

En 9, 10, 11 imshow permite visualizar las imagenes guardadas en las


estructuras Imagen, ImagenGris e imagenClonada.
En 12 se espera 10seg para de visualizacin de la imagen.
En 13 se espera que se presione una tecla para cerrar la ventana.
En 14 retorna un entero de la funcin main para salir.
Ejercicio #4
En este ejercicio se aplica el operador umbral sobre la imagen.

1.
2.
3.
4.
5.
6.
7.
8.
9.

10.
11.
12.

Mat imagen, ImagenUmbral;


namedWindow("Original",1);
namedWindow("Umbral",1);
imagen= imread("c:\\lena.jpg");
ImagenUmbral.create(imagen.rows, imagen.cols, CV_8UC1);
cvtColor(imagen, ImagenUmbral, CV_RGB2GRAY);
threshold(ImagenUmbral, ImagenUmbral,128,255,CV_THRESH_BINARY);
imshow("Original",imagen);
imshow("Umbral",ImagenUmbral);

waitKey(10000);
getchar();
return 0;

Visin Artificial, Instituto Tecnolgico Metropolitano

Carlos A. Madrigal

En 7 threshold permite aplicar el operador umbral a la imagen con umbral

de 128 y un valor maximo de 255.

void Threshold(InputArray src, OutputArray dst, double thresh, double


maxval, int type)

Permite aplicar diferentes tipos de Operadores umbral a una imagen. Los


argumentos de esta funcin son:
src Imagen de entrada de 8 bits o 32 bits en punto flotante.
Imagen destino, debe ser del mismo tipo de src.

dst

thresh

Valor de Umbral

maxval Valor mximo, se usa cuando el


THRESH_BINARY, THRESH_BINARY_INV.

argumento type es

Permite escoger el tipo de operador umbral de la siguiente


forma:

type

type = THRESH_BINARY:

dst ( x , y )= maxValue para src> threshold


0 para OtrosCasos
type = THRESH_BINARY_INV:

dst ( x , y )=

0 para src >threshold


maxValue para Otros Casos

type = THRESH_TRUNC:

dst ( x , y )= threshold para src>threshold


src para Otros Casos

type = THRESH_TOZERO:

Visin Artificial, Instituto Tecnolgico Metropolitano

dst ( x , y )= src para src >threshold


0 para Otros Casos

type = THRESH_TOZERO_INV:

dst ( x , y )= 0 para src>threshold


src para Otros Casos

Carlos A. Madrigal