Utilizando imágenes en nuestros programas Python

Documentos relacionados
TABLAS WORD La tercer opción es usar el vínculo Dibujar Tabla, aquí se dimensiona la tabla dibujándola con el mouse

Elaboración de Documentos en Procesadores de Textos

Microsoft Office Word

DISEÑO VECTORIAL Índice

Píxel. Un píxel ( picture element ) es la menor unidad homogénea en color que forma parte de una. fotograma de video, gráfico)

PASOS PARA INGRESAR A WORD 2007

TEMA 3: DIBUJO VECTORIAL. Realización de dibujos vectoriales con la herramienta OpenOffice Draw

Formato de una presentación

DIVIDIR UNA IMAGEN EN CUADRICULAS versión 2

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Informes

FORMATO CONDICIONAL EN EXCEL

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

UNIDAD 2 IMAGEN DIGITAL

Impresión en formato PDF con

COBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates

TUTORIAL SOBRE HOJAS DE CALCULO

Ordenador local + Servidor Remoto

Microsoft Windows Seven. Windows Seven. Elementos de la pantalla principal Iconos del escritorio o Equipo o Papelera de Reciclaje Barra de tareas

Manual del gestor Web de la Fundación Picarral

Clase 1 Excel

UNIVERSIDAD METROPOLITANA LATIN CAMPUS GUÌA DE ESTUDIO Y EVALUACIÒN. Informática General IV- POWER POINT TEXTO ELECTRÓNICO GRATUITO EDITADO POR UMLA

CRECE AMB INTERNET. Aprende a utilizar el ordenador ( 4 )

La primera vez que selecciona el nombre de usuario el programa pide introducir la nueva clave.

Microsoft PowerPoint 2013 (Completo)

CAPÍTULO 1. ELEMENTOS DE EXCEL

Primer grado. Slide 2 / 232. Slide 1 / 232. Slide 3 / 232. Slide 4 / 232. Slide 6 / 232. Slide 5 / 232. Geometría. Formas 2-D

MICROSOFT PowerPoint 2013 Básico

ejercicios t e c n o l o g í a 4 º e s o

TECNOLOGÍA E INFORMÁTICA

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Organización de la información en disco: archivos y carpetas

UTILIDAD DE CSS EN DESARROLLOS WEB JUNTO A HTML Y JAVASCRIPT. APLICAR ESTILOS. EJEMPLO SENCILLO. (CU00732B)

Al hacer clic en el icono de mano alzada se despliegan otros iconos que nos permiten realizar otros tipos de líneas.

Estos márgenes se definen en el menú Archivo, Configurar página... se nos muestra un cuadro de dialogo como este con tres pestañas:

MANUAL PARA EL MANEJO DE GRAPHMATICA 2.0C

En esta lección vamos a ver más utilidades y opciones sobre la

Protocolo elaboración de díptico A TRAVÉS DE SCRIBUS

MICROSOFT PowerPoint 2016 Básico

Seleccionamos el programa Excel. Nos aparece la pantalla del programa

Primeros Pasos en la Plataforma de Formación

Crear gráficos en Excel Un gráfico es la representación gráfica de los datos de una hoja de cálculo y facilita su interpretación.

1. Manual de Usuario. 1.1 Ingreso al Software. 1.2 Ventana principal del Spark

Manual de Windows XP Copyleft - Jorge Sánchez 2005

MOODLE 1.9 BASE DE DATOS

Manual de GIMP. Capítulo 6. Los colores. Manual de GIMP. Capítulo 6: Los colores.

C. E. I. P. LAS VIÑAS. Bollullos del Cdo. (Huelva) Centro TIC/DIG. Las ventanas

Formato para prácticas de laboratorio

Consta de dos programas. (Puedes descargarlos en modo demo haciendo clic en los nombres)

Las imágenes capturadas se guardan en formato digital en un dispositivo de almacenamiento que se llama tarjeta de memoria Esta tarjeta se conecta al

Sistemas de Bases de Datos 2 Practica 1

MICROSOFT EXCEL 2010

Imagen ::: Conceptos básicos de imagen digital Diseño de materiales multimedia. Web Conceptos básicos de imagen digital

TEMA 3: IMPLANTACIÓN DE TÉCNICAS DE ACCESO REMOTO. Victor Martin

Manual del Alumno - Blackboard

Ángulos complementarios Un par de ángulos son complementarios si la suma resultante de sus medidas es.

MICROSOFT POWERPOINT 2010

La corrección del color en nuestras imágenes es muy importante a la hora de poder realizar selecciones y Máscaras.

Unidad 2. Elementos de Word2007 (I)

Plugin Geshi para dar formato a código de programación en artículos Joomla. Saltos de línea. (CU00435A)

CREACIÓN DE UNA PÁGINA WEB CON JIMDO

SESIÓN 6 INTRODUCCIÓN A POWER POINT

MANUAL DEL PROGRAMA EXCEL LABORAL

Cómo crear el objeto Juego de Pistas en Eduloc

Tutorial para el uso de imágenes en Octave

GUÍA DE USO E INSTALACIÓN

UNIDAD 1 GENERALIDADES HTML

La etiqueta TABLE. Hay que cerrarla con </TABLE>

Terceros Ekon Sical. Departamento de Informática

Subtitular Vídeos José Luis Fernández. I.E.S. Leiras Pulpeiro

Se abre una ventana que permite especificar el número de filas y columnas para la tabla.

4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes

TUTORIAL PAINT. PARTE II

Constructor de sitios. Manual de Usuario

Acceder al backend de la web

Informática HOT POTATOES

COMO CREAR UN BLOG ACERCA DE ZENZUU

EL DIBUJO DIGITAL ANALÍTICO

Qué aprenderás? Identificar y dibujar líneas rectas y curvas. Conocer figuras 2D y 3D. Identificar figuras 2D y 3D en su entorno y relacionarlas.

ESTRUCTURA DEL CÓDIGO HTML5

CREAR UN BLOG EN BLOGGER

Impress III Elementos interactivos

1

UTILIZAMIENTO DE PLANILLA ELECTRÓNICA MS OFFICE EXCEL 2007

WorfArt. Final. Obra de teatro. Grupo Gesfomedia

BLOQUE I: HOJA DE CÁLCULO

Contenido Introducción... 1 Instalación del Cliente... 2 Acceso vía Web... 7 He olvidado la contraseña... 8 Quiero cambiar la contraseña...

Manual de ayuda de la herramienta de comunicación privada Correo Interno

MANUAL PARA PHOTO STORY 3

HACER COPIAS DE SEGURIDAD EN WINDOWS

MANUAL DE IDENTIDAD CORPORATIVA

Asimismo, las instancias de símbolos se pueden colocar en un documento de dos formas distintas:

En la pestaña "Actividad" aparecen los siguientes elementos:

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Transcripción:

Utilizando imágenes en nuestros programas Python Para poder manejar imágenes tenemos que utilizar un paquete externo, Python Imaging Library (PIL). De momento nos basta con utilizar el objeto Image. In [1]: from PIL import Image Abrir, crear, ver Podemos leer una fotografía que se encuentre en nuestro ordenador (lo más fácil es colocar las imágenes en el mismo directorio en el que estamos trabajando). Si quieres utilizar las mismas imágenes de ejemplo que aparecen a continuación, puedes bajartelas en los siguientes enlaces: * http://wild.mat.ucm.es/img/beach.png (http://wild.mat.ucm.es/img/beach.png) * http://wild.mat.ucm.es /img/beach_grey.png (http://wild.mat.ucm.es/img/beach_grey.png) In [2]: i = Image.open('beach.png','r') # imagen en color j = Image.open('beach_grey.png','r') # imagen en escala de grises Una imagen es esencialmente una matriz de datos. Los elementos de la matriz indican el color que tienen los puntos (píxeles) que forman la imagen (http://es.wikipedia.org/wiki/píxel (http://es.wikipedia.org/wiki/p%c3%adxel)). Las variables i y j que hemos definido arriba, por ser imágenes, tiene múltiples propiedades y funciones, algunas muy útiles son las siguientes: In [7]: Out[7]: i.size, i.format_description, i.getbands() ((600, 450), 'Portable network graphics', ('R', 'G', 'B')) Que nos indican, que i tiene una fotografía de 600 por 450 píxeles; que el formato utilizado es png (habitualmente esto también lo indica la extensión del archivo); y que la imagen es de tipo RGB (del inglés Red, Green, Blue), es decir, cada píxel es una terna que tiene una codificación de color usando valores para rojo, verde y azul. En el caso de la imágen contenida en la variable j: In [4]: Out[4]: j.size, j.format_description, j.getbands() ((600, 450), 'Portable network graphics', ('L',)) Es una fotografía de 600 por 450 píxeles con formato png de tipo L (escala de grises). Si la fotografía es en blanco y negro, el color viene definido por un único número, 0 es negro, 255 es blanco y los valores intermedios indican distintos tonos de grises. Podemos, por suspuesto, ver las imágenes: In []: i.show() j.show() 1 de 5

Nota: Desgraciadamente, en windows la función show() no muestra bien la imagen. La alternativa para mostrar una imagen en windows es grabarla y abrirla. En este caso la imagen ya existía y podemos ahorrar el grabarla. Como vamos a ver más adelante, en muchas ocasiones generaremos nuestras propias imágenes y por eso escribimos aquí esta solución más general. In []: ### Solo Windows ### i.save('nombre_que_quieras.png') import os os.startfile('nombre_que_quieras.png') Si usáis windows --en contra de las recomendaciones-- estos comandos tienen que sustituir a las llamadas a la función show(). También podemos crear nuestras propias imágenes. Tenemos que indicar: * Formato, sólo usaremos "RGB" para imágenes en color y "L" para imágenes en escala de grises. * Dimensión, una tupla con el ancho y el alto de la imagen en píxeles. * Color, un color, bien un número entre 0 y 255 para los grises o una terna de números entre 0 y 255 para las imágenes en color. (Si no entiendes bien la codificación de colores en RGB echa un vistazo en la wikipedia http://es.wikipedia.org/wiki/rgb (http://es.wikipedia.org/wiki/rgb), en particular la sección titulada Uso de RGB en HTML y en lenguajes de programación.) In []: img = Image.new("RGB", (200,100), (255,0,0)) Que da como resultado una imagen completamente roja (255,0,0) In []: img = Image.new("L", (200,100), 80) Que da como resultado una imagen de 200x100 con un color gris oscuro (80) Dibujos sencillos Vamos a crear algunas imágenes con dibujos sencillos: líneas horizontales, verticales, diagonales... Cómo podríamos crear esta imagen? 2 de 5

Podríamos partir de una imagen inicial como la que hemos creado antes y añadir la línea verde. Para ello tenemos que poder acceder a cada uno de los píxeles que forman parte de la imagen. In []: img = Image.new("RGB", (200,100), (255,0,0)) for x in xrange(200): img.putpixel((x,50),(0,255,0)) Como es fácil adivinar, las imágenes tienen una función putpixel que tiene dos parámetros, el primero es la posición del píxel que queremos cambiar, en nuestro ejemplo los pares (x,50), y el color que le queremos dar a ese pixel, en nuestro ejemplo el color verde (0,255,0). Si en lugar de líneas horizontales las queremos dibujar verticales, (lo hacemos esta vez con imágenes en blanco y negro) la solución es muy parecida. In []: img = Image.new("L", (200,100), 80) for y in xrange(100): img.putpixel((50,y), 255) También es muy fácil modificar imágenes ya existentes, la siguiente función añade una línea horizontal en una imagen. In []: def line_h(img, color): width, height = img.size for x in xrange(width): img.putpixel((x,height/2),color) Probamos la función con una imagen en color y con otra en escala de grises In []: i = Image.open('beach.png','r') # imagen en color j = Image.open('beach_grey.png','r') # imagen en escala de grises line_h(i,(255,0,0)) i.show() line_h(j,255) j.show() 3 de 5

Ejercicios Te proponemos algunas imágenes para que encuentres la función que puede generar esos resultados. Están ordenadas por nivel de dificultad, más o menos. Rayas Cuadrícula Diagonales (en un cuadrado) Diagonales (en un rectángulo) 4 de 5

Líneas con diferente pendiente Sinusoides (no todo son rectas!) También puedes create tus propios ejercicios, piensa en imágenes que te gustaria generar/transformar... 5 de 5