Ejercicios con OpenCV
|
|
|
- Francisco Javier Acosta Cuenca
- hace 7 años
- Vistas:
Transcripción
1 Ejercicios con OpenCV Dr. Alfonso Alba Cadena Facultad de Ciencias, UASLP Septiembre Sobre OpenCV OpenCV (Open Source Computer Vision) es una librería de funciones escritas en C/C++ para realizar tareas de procesamiento de imágenes y visión computacional que van desde lo básico (acceso a pixeles individuales, despliegue en pantalla, dibujo de formas geométricas) hasta lo avanzado (filtrado, detección de bordes, transformaciones geométricas). OpenCV puede utilizarse bajo diversas plataformas (incluyendo Windows, MacOS, Linux, Android e ios) y con diversos compiladores. En particular, en Windows soporta los compiladores Microsoft Visual C++ y MinGW (e.g., bajo Code::Blocks). Este documento contempla la versión 2.2 de OpenCV. 2 Estructura IplImage La estructura IplImage contiene la información de una imagen y sus características (para mayores detalles consultar la guía de referencia de OpenCV). Los principales campos de esta estructura son: int width - contiene el ancho de la imagen en pixeles. int height - contiene la altura de la imagen en pixeles. int depth - indica el formato de los pixeles, de acuerdo a las siguientes constantes IPL_DEPTH_8U - Entero de 8 bits sin signo (e.g., escala de grises de 0 a 255). IPL_DEPTH_8S - Entero de 8 bits con signo. IPL_DEPTH_16U - Entero de 16 bits sin signo. IPL_DEPTH_16S - Entero de 16 bits con signo. IPL_DEPTH_32S - Entero de 32 bits con signo.
2 IPL_DEPTH_32F - Punto flotante de 32 bits (la escala de grises toma el rango de 0 a 1). IPL_DEPTH_64F - Punto flotante de 64 bits (la escala de grises toma el rango de 0 a 1). int nchannels - número de canales (e.g., 1 para imágenes en escala de grises, 3 para imágenes RGB). char *imagedata - apuntador al arreglo que contiene la imagen. El programador debe realizar la conversión al tipo de apuntador adecuado, de acuerdo al campo depth. int widthstep - número de bytes que ocupa cada renglón de la imagen en el arreglo imagedata. Este valor puede ser mayor que el que requiere el ancho de la imagen. La imagen contenida en una estructura IplImage está organizada como un arreglo bidimensional en orden lexicográfico; sin embargo, por razones de eficiencia, el número de columnas en este arreglo no es necesariamente igual al número de pixeles en cada renglón de la imagen. El campo widthstep de la estructura IplImage indica exactamente cuántos bytes ocupa cada renglón de la imagen dentro del arreglo. En otras palabras, el apuntador dado por imagedata + y * widthstep precisamente apunta al inicio del y-ésimo renglón de la imagen. Sin embargo, es importante recordar que este apuntador está definido como apuntador a char y en muchos casos será necesario realizar un typecast al tipo de apuntador adecuado para el formato de la imagen. Considere el siguiente ejemplo: #include <opencv2/opencv.hpp> int main() { IplImage *img; // img es un apuntador a una estructura IplImage // Aqui creamos la estructura y reservamos espacio para una imagen // de 320x240 pixeles en formato de punto flotante (32 bits) y // en escala de grises (un solo canal) img = cvcreateimage(cvsize(320, 240), IPL_DEPTH_32F, 1); // Ahora asignamos al pixel (160,120) el color blanco float *row = (float *)(img->imagedata * img->widthstep); row[160] = 1; cvwaitkey(-1); // Espera una tecla cvreleaseimage(&img); // Libera la imagen return 0; 2
3 3 Funciones Básicas IplImage *cvcreateimage(cvsize size, int depth, int channels); Crea una imagen con un tamaño, formato y número de canales dado, y devuelve un apuntador a la estructura IplImage correspondiente. void cvreleaseimage(iplimage **image); Libera la memoria utilizada por una imagen. void cvset(cvarr *arr, CvScalar value, const CvArr *mask = NULL); Llena una matriz o una imagen con un mismo valor. El tercer parámetro es opcional y define una máscara que determina que pixeles serán modificados. Si el pixel correspondiente en la máscara es distinto de cero, entonces el pixel en la imagen de entrada tomará el valor value. El valor asignado a los pixeles debe proporcionarse como una estructura de tipo CvScalar la cual contiene un arreglo val de cuatro elementos de tipo double. La forma mas fácil de crear un elemento CvScalar es mediante la función cvscalar que toma como parámetros entre 1 y 4 valores de tipo double y devuelve el CvScalar correspondiente. Ejemplo de uso: // Crea una imagen en formato RGB de tipo flotante y la llena con color rojo IplImage *img = cvcreateimage(cvsize(320,240), IPL_DEPTH_32F, 3); cvset(img, cvscalar(1,0,0)); cvshowimage("imagen", img); void cvsetzero(cvarr *arr); Llena una matriz o una imagen con ceros. void cvsetreal2d(cvarr *arr, int idx0, int idx1, double value); Asigna el valor value al elemento de una matriz o una imagen localizado en el renglón idx0 y columna idx1. Es importante notar que si *arr es una imagen (i.e., de tipo IplImage *), los índices idx0 e idx1 representan, respectivamente, las coordenadas Y y X del pixel a modificar. double cvgetreal2d(cvarr *arr, int idx0, int idx1); Devuelve el valor asignado al elemento ubicado en el renglón idx0 y columna idx1 de la matriz o imagen dada por arr. void cvcopy(const CvArr *src, CvArr *dst, const CvArr *mask = NULL); Copia el contenido de la matriz o imagen src en la matriz o imagen dst. Ambas imagenes deben tener el mismo tamaño, formato y número de canales. Dada la matriz o imagen mask, esta indicará cuáles pixeles serán copiados. 3
4 4 Funciones básicas de interface void cvshowimage(const char *name, const CvArr *image); Despliega la imagen image en una ventana cuyo nombre está dado por la cadena name. Si ya existe una ventana con el mismo nombre, la imagen de esa ventana será reemplazada. Nota: En versiones de OpenCV anteriores a la 2.2 era necesario crear primero la ventana mediante la función cvnamedwindow. void cvdestroywindow(const char *name); Destruye y cierra la ventana con nombre name. void cvdestroyallwindows(); Destruye y cierra todas las ventanas creadas con cvshowimage y cvnamedwindow. int cvwaitkey(int delay = 0); Esta función detiene la ejecución durante delay milisegundos, o indefinidamente (delay <= 0) hasta que se origine un evento del teclado. El resultado devuelto es el código de la tecla presionada, o bien -1 si no se presionó ninguna tecla antes de reanudar la ejecución. 5 Ejemplo: cvsetreal2d vs apuntadores El siguiente ejemplo muestra la diferencia entre utilizar las funciones cvgetreal2d y cvsetreal2d y utilizar el apuntador imagedata para acceder a los pixeles de una imagen. #include <opencv2/opencv.hpp> #include <ctime> #include <iostream> using namespace std; #define TIME 10 #define TIMECLK (TIME * CLOCKS_PER_SEC) int main() { IplImage *img; // img es un apuntador a una estructura IplImage clock_t ti; int iter, x, y; double fps; 4
5 float *row; img = cvcreateimage(cvsize(640, 480), IPL_DEPTH_32F, 1); // Llena una imagen continuamente con ruido utilizando cvsetreal2d iter = 0; ti = clock(); while ((cvwaitkey(1) < 0) && ((clock() - ti) < TIMECLK)) { for (y = 0; y < img->height; y++) { for (x = 0; x < img->width; x++) { cvsetreal2d(img, y, x, (double)rand() / RAND_MAX); iter++; fps = (double)iter * CLOCKS_PER_SEC / (clock() - ti); cout << "Frames per second (cvsetreal2d) : " << fps << endl; // Llena una imagen continuamente con ruido utilizando apuntadores iter = 0; ti = clock(); while ((cvwaitkey(1) < 0) && ((clock() - ti) < TIMECLK)) { for (y = 0; y < img->height; y++) { row = (float *)(img->imagedata + y * img->widthstep); for (x = 0; x < img->width; x++) { *row++ = (double)rand() / RAND_MAX; iter++; fps = (double)iter * CLOCKS_PER_SEC / (clock() - ti); cout << "Frames per second (pointers) : " << fps << endl; cvreleaseimage(&img); return 0; 5
Manejo de BibliotecasOpencv
Manejo de Bibliotecas Opencv Setiembre 2010 Agenda Opencv 1 Opencv. 2. 3 Aplicaciones y mas Funciones. 4 Que es Opencv? Opencv Características Componentes Nomenclatura Parámetros OpenCV es una biblioteca
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Programación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Programación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Lenguaje de Programación: C++ Repaso de Material C++
UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo
Cátedra I Informática Autor I Carlos Bartó
FCEFyN Departamento de Computación Informática Examen - 07-07-2008 Apellido y Nombres: Matrícula: Carrera: PROBLEMAS: 1) Especifique en el lenguaje C++ una función denominada calc_fecha() que tenga como
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros tipo objeto #define IDENTIFICADOR VALOR Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. Son especialmente
Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM
Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM C vs. C++ C es un lenguaje procedural el elemento central del son las funciones. Cualquier función se puede comunicar con
Fundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas
Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto
PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3
Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.
Universidad Nacional Autónoma de México Facultad de Ingeniería ARREGLOS Y ESTRUCTURAS Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos
Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos PARTE 1. Arreglos Unidimensionales o Vectores Un arreglo es una estructura de datos conformada por una sucesión de celdas,
Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes.
Objetivos El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes. Al final de esta práctica el alumno podrá: 1. Utilizar las herramientas para
Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 1. Problemas de tratamiento de información, algoritmos y programas 1 Problemas, algoritmos y programas Problemas de tratamiento
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento
Tipos de datos y operadores en C++
Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 6 de septiembre de 2016 Se debe disponer sobre la mesa en lugar visible un documento
Tema 1. Adquisición y representación de imágenes.
PROCESAMIENTO AUDIOVISUAL Programa de teoría 1. Adquisición y representación de imágenes. 2. Procesamiento global de imágenes. 3. Filtros y transformaciones locales. 4. Transformaciones geométricas. 5.
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1
Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 CAPITULO 3. ENTRADA Y SALIDA BÁSICA Usando la librería estandar de entrada y salida, seremos
Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc().
Notas auxiliares sobre manejo de archivos Las funciones de entrada salida (E/S) de las librerías estandar de C, permiten leer y escribir datos a, y desde, archivos y dispositivos. La caracteristica fundamental
Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición
Unidad 2. La lógica de programación Tema 4. Arreglos y estructuras de repetición Arreglos y estructuras de repetición Contenido: Introducción Arreglos Vectores Matrices De más de 2 dimensiones Estructura
Introducción rápida a la programación (estructurada ) con C++
Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de
Graficación por Computadora
Graficación por Computadora Dr. Roberto Núñez González 1 1 Departamento de Matemáticas Ciencias de la Computación Universidad de Sonora 22 de mayo de 2014 Introducción a la Graficación por Computadora
Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia
Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia Preguntas sobre teoría 1. Es C un lenguaje interpretado
Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Ejemplos Paso de vectores como parámetros. Matrices Ejemplos
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje
Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado
Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. Código: O613 INGENIERÍA DE SISTEMAS Docente y Administrativo: Luz Esperanza Espitia Preciado Componente: Teórico Práctico. F. Vigencia: 8/10/2.012
Tema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Tema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar
Tema: Repaso sobre uso de Funciones, Arreglos y Punteros en C++.
Programación II. Guía No. 1 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Repaso sobre uso de Funciones, Arreglos y Punteros en C++. Objetivos. Utilizar la sintaxis de las
Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.
Constructores Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara. Los constructores tienen el mismo nombre
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Funciones: Pasos por Referencia Recursividad
Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces
Algoritmos y estructuras de datos
Algoritmos y estructuras de datos Estructuras, apuntadores y memoria dinámica Francisco Javier Zaragoza Martínez Universidad Autónoma Metropolitana Unidad Azcapotzalco Departamento de Sistemas 11 de mayo
Subrutinas o Funciones
Subrutinas o Funciones JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Conocer las características estructurales de una función. Entender la importancia y las ventajas del uso de funciones
Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez
Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 02/ 2012 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #08 Uso de Arreglos
Tipo de Dato: Arreglos
Tipo de Dato: Arreglos Unidimensionales Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo
ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución
Formatos de imágenes. Herramientas de programación para procesamiento de señales
Formatos de imágenes Herramientas de programación para procesamiento de señales Índice Resumen de diferentes formatos de imágenes Formato PGM Tipos Encabezado Formato PPM Operación simple aplicar umbral
Programación I Unidad III. Tema: Tipos, estructuras y uniones
Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos
Introducción a procesamiento digital de imágenes con Matlab
Introducción a procesamiento digital de imágenes con Matlab Contenidos Imágenes digitales Convenciones en el establecimiento de las coordenadas Lectura, visualización y escritura de imágenes. Tipos de
CAPITULO 2: VARIABLES Y CONSTANTES
CAPITULO 2: VARIABLES Y CONSTANTES 1. TIPOS DE DATOS. Existen cinco tipos de datos atómicos en C; char: carácter, int: entero, float: real coma flotante, double: real de doble precisión y void: sin valor.
1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Introducción al lenguaje C
Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo
