|
|
|
|
5
|
![main2.png](images/main2.png)
|
5
|
![main2.png](images/main2.png)
|
6
|
![main3.png](images/main3.png)
|
6
|
![main3.png](images/main3.png)
|
7
|
|
7
|
|
8
|
-[prueba]
|
|
|
|
|
8
|
+[Verano 2016 - Ive]
|
9
|
|
9
|
|
10
|
Los arreglos de datos (*arrays*) nos facilitan guardar y trabajar con grupos de datos del mismo tipo. Los datos se guardan en espacios de memoria consecutivos a los que se puede acceder utilizando el nombre del arreglo e índices o suscritos que indican la posición en que se encuentra el dato. Las estructuras de repetición nos proveen una manera simple de acceder a los datos de un arreglo. En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados en la manipulación de arreglos bi-dimensionales usando técnicas de "pantalla verde".
|
10
|
Los arreglos de datos (*arrays*) nos facilitan guardar y trabajar con grupos de datos del mismo tipo. Los datos se guardan en espacios de memoria consecutivos a los que se puede acceder utilizando el nombre del arreglo e índices o suscritos que indican la posición en que se encuentra el dato. Las estructuras de repetición nos proveen una manera simple de acceder a los datos de un arreglo. En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados en la manipulación de arreglos bi-dimensionales usando técnicas de "pantalla verde".
|
11
|
|
11
|
|
|
|
|
|
117
|
|
117
|
|
118
|
2. Si la siguiente imagen `4 x 4` de píxeles representa el objeto `originalImage`,
|
118
|
2. Si la siguiente imagen `4 x 4` de píxeles representa el objeto `originalImage`,
|
119
|
|
119
|
|
120
|
- ![ejemplo.png](images/ejemplo.png)
|
|
|
|
|
120
|
+ ![ejemplo.png](images/ejemplo.png)
|
121
|
|
121
|
|
122
|
- entonces `originalImage.pixel(2,1)` devuelve un valor `rgb` que representa el color azul (`0x0000ff`).
|
|
|
|
|
122
|
+ entonces `originalImage.pixel(2,1)` devuelve un valor `rgb` que representa el color azul (`0x0000ff`).
|
123
|
|
123
|
|
124
|
3. La siguiente instrucción asigna el color rojo al píxel en posición `(2,3)` en la imagen editada:
|
124
|
3. La siguiente instrucción asigna el color rojo al píxel en posición `(2,3)` en la imagen editada:
|
125
|
|
125
|
|
|
|
|
|
129
|
|
129
|
|
130
|
`int greenContent = qGreen(originalImage.pixel(1,1));`.
|
130
|
`int greenContent = qGreen(originalImage.pixel(1,1));`.
|
131
|
|
131
|
|
132
|
-
|
|
|
133
|
5. El siguiente programa crea un objeto de clase `QImage` e imprime los componentes rojo, verde y azul del pixel en el centro de la imagen. La imagen utilizada es la que se especifica dentro del paréntesis durante la creación del objeto, esto es, el archivo `chuck.png`.
|
132
|
5. El siguiente programa crea un objeto de clase `QImage` e imprime los componentes rojo, verde y azul del pixel en el centro de la imagen. La imagen utilizada es la que se especifica dentro del paréntesis durante la creación del objeto, esto es, el archivo `chuck.png`.
|
134
|
|
133
|
|
135
|
---
|
134
|
---
|
|
|
|
|
218
|
|
217
|
|
219
|
####Instrucciones
|
218
|
####Instrucciones
|
220
|
|
219
|
|
221
|
-1. Descarga la carpeta `Arrays-GreenScreen` de `Bitbucket` usando un terminal, moviéndote al directorio `Documents/eip`, y escribiendo el comando `git clone http://bitbucket.org/eip-uprrp/arrays-greenscreen`.
|
|
|
|
|
220
|
+1. Carga a `QtCreator` el proyecto `GreenScreenLab`. Hay dos maneras de hacer esto:
|
222
|
|
221
|
|
223
|
-2. Carga a Qt creator el proyecto `GreenScreenLab` haciendo doble "click" en el archivo `GreenScreenLab.pro` que se encuentra en la carpeta `Documents/eip/Arrays-GreenScreen` de tu computadora.
|
|
|
|
|
222
|
+ * Utilizando la máquina virtual: Haz doble “click” en el archivo `GreenScreenLab.pro` que se encuentra en el directorio `/home/eip/labs/arrays-greenscreen` de la máquina virtual.
|
224
|
|
223
|
|
225
|
-
|
|
|
226
|
-3. Configura el proyecto y corre el programa. El código que te proveemos crea la interfaz de la Figura 5. Los botones *Select Image* y *Select Background Image* ya han sido programados.
|
|
|
|
|
224
|
+ * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/arrays-greenscreen` para descargar la carpeta `arrays-greenscreen` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `GreenScreenLab.pro`.
|
|
|
225
|
+
|
|
|
226
|
+2. Configura el proyecto y corre el programa. El código que te proveemos crea la interfaz de la Figura 5. Los botones *Select Image* y *Select Background Image* ya han sido programados.
|
227
|
|
227
|
|
228
|
---
|
228
|
---
|
229
|
|
229
|
|
|
|
|
|
233
|
|
233
|
|
234
|
---
|
234
|
---
|
235
|
|
235
|
|
236
|
-4. Marca el botón para cargar una imagen del objeto de interés sobre fondo sólido, luego marca el botón para seleccionar la imagen para el fondo. El directorio con los archivos fuente contiene una carpeta llamada `landscapes` que contiene imágenes de fondo, y una carpeta llamada `green_background` que contiene imágenes de objetos sobre fondo de color sólido.
|
|
|
|
|
236
|
+3. Marca el botón para cargar una imagen del objeto de interés sobre fondo sólido, luego marca el botón para seleccionar la imagen para el fondo. El directorio con los archivos fuente contiene una carpeta llamada `landscapes` que contiene imágenes de fondo, y una carpeta llamada `green_background` que contiene imágenes de objetos sobre fondo de color sólido.
|
237
|
|
237
|
|
238
|
-5. Tu primera tarea es completar la función `MergeImages` en el archivo `Filter.cpp`. La función `MergeImages` se invoca cuando el usuario marca el botón `Merge Images` y cuando se desliza la barra. La función `MergeImages` recibe las referencias a la imagen con objeto de interés y fondo sólido, la imagen para el fondo y la imagen compuesta, un valor umbral, las coordenadas `(x,y)` de un píxel de la imagen del objeto sobre fondo sólido, y las coordenadas `(offset_x, offset_y)` de la imagen compuesta.
|
|
|
|
|
238
|
+4. Tu primera tarea es completar la función `MergeImages` en el archivo `Filter.cpp`. La función `MergeImages` se invoca cuando el usuario marca el botón `Merge Images` y cuando se desliza la barra. La función `MergeImages` recibe las referencias a la imagen con objeto de interés y fondo sólido, la imagen para el fondo y la imagen compuesta, un valor umbral, las coordenadas `(x,y)` de un píxel de la imagen del objeto sobre fondo sólido, y las coordenadas `(offset_x, offset_y)` de la imagen compuesta.
|
239
|
|
239
|
|
240
|
Para este ejercicio puedes ignorar el filtro "fantasma" `ghost` y las coordenadas `(offset_x, offset_y)`, y solo componer la imagen con el objeto de interés en la imagen de fondo, comenzando en la posición `(0,0)`.
|
240
|
Para este ejercicio puedes ignorar el filtro "fantasma" `ghost` y las coordenadas `(offset_x, offset_y)`, y solo componer la imagen con el objeto de interés en la imagen de fondo, comenzando en la posición `(0,0)`.
|
241
|
|
241
|
|