|
@@ -27,7 +27,7 @@ Antes de llegar al laboratorio debes haber:
|
27
|
27
|
|
28
|
28
|
1. Repasado los conceptos básicos relacionados a estructuras de repetición, ciclos anidados y arreglos bi-dimensionales.
|
29
|
29
|
|
30
|
|
-2. Entendido los métodos básicos de `QImage` para manipular los pixeles de las imágenes.
|
|
30
|
+2. Entendido los métodos básicos de `QImage` para manipular los píxeles de las imágenes.
|
31
|
31
|
|
32
|
32
|
3. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
33
|
33
|
|
|
@@ -70,7 +70,7 @@ Para producir la imagen compuesta (*imagen C*), podríamos comenzar copiando tod
|
70
|
70
|
|
71
|
71
|
##Píxeles
|
72
|
72
|
|
73
|
|
-Al elemento más pequeño de una imagen se le llama un *píxel*. Esta unidad consiste de un solo color. Como cada color es una combinación de tonalidades de los colores primarios rojo, verde y azul, se codifica como un entero sin signo cuyos bytes representan los tonos de rojo, verde y azul del pixel (Figura 3). A esta combinación se le llama el *RGB* del color por las siglas de "Red-Green-Blue". Por ejemplo un píxel de color rojo (puro) tiene una representación RGB `0x00ff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0x00FFFFFF` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad).
|
|
73
|
+Al elemento más pequeño de una imagen se le llama un *píxel*. Esta unidad consiste de un solo color. Como cada color es una combinación de tonalidades de los colores primarios rojo, verde y azul, se codifica como un entero sin signo cuyos bytes representan los tonos de rojo, verde y azul del píxel (Figura 3). A esta combinación se le llama el *RGB* del color por las siglas de "Red-Green-Blue". Por ejemplo un píxel de color rojo (puro) tiene una representación RGB `0x00ff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0x00FFFFFF` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad).
|
74
|
74
|
|
75
|
75
|
---
|
76
|
76
|
|
|
@@ -84,7 +84,7 @@ En `Qt` se utiliza el tipo `QRgb` para representar valores `RGB`. Utilizando ci
|
84
|
84
|
|
85
|
85
|
###Biblioteca
|
86
|
86
|
|
87
|
|
-La experiencia de laboratorio de hoy utilizará la clase `QImage`. Esta clase permite acceder a los datos de los pixeles de una imagen para poder manipularla. La documentación de la clase `QImage` se encuentra en http://doc.qt.io/qt-4.8/qimage.html.
|
|
87
|
+La experiencia de laboratorio de hoy utilizará la clase `QImage`. Esta clase permite acceder a los datos de los píxeles de una imagen para poder manipularla. La documentación de la clase `QImage` se encuentra en http://doc.qt.io/qt-4.8/qimage.html.
|
88
|
88
|
|
89
|
89
|
El código que te proveemos contiene los siguiente objetos de la clase `QImage`:
|
90
|
90
|
|
|
@@ -123,10 +123,10 @@ Las siguientes funciones son útiles para trabajar con datos de tipo `QRgb`:
|
123
|
123
|
3. La siguiente instrucción asigna el color rojo al píxel en posición `(2,3)` en la imagen editada:
|
124
|
124
|
`editedImage.setPixel(2,3,qRgb(0xff,0x00,0x00));`.
|
125
|
125
|
|
126
|
|
-4. La siguiente instrucción le asigna a `greenContent` el valor del tono de verde que contiene el pixel `(1,1)` de `originalImage`:
|
|
126
|
+4. La siguiente instrucción le asigna a `greenContent` el valor del tono de verde que contiene el píxel `(1,1)` de `originalImage`:
|
127
|
127
|
`int greenContent = qGreen(originalImage.pixel(1,1));`.
|
128
|
128
|
|
129
|
|
-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`.
|
|
129
|
+5. El siguiente programa crea un objeto de clase `QImage` e imprime los componentes rojo, verde y azul del píxel 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`.
|
130
|
130
|
|
131
|
131
|
---
|
132
|
132
|
|
|
@@ -143,7 +143,7 @@ int main() {
|
143
|
143
|
|
144
|
144
|
cout << hex;
|
145
|
145
|
|
146
|
|
- cout << “Los componentes rojo, verde y azul del pixel central son: “
|
|
146
|
+ cout << “Los componentes rojo, verde y azul del píxel central son: “
|
147
|
147
|
<< qRed(centralPixel) << “, “
|
148
|
148
|
<< qGreen(centralPixel) << “, “
|
149
|
149
|
<< qBlue(centralPixel) << endl;
|
|
@@ -153,7 +153,7 @@ int main() {
|
153
|
153
|
|
154
|
154
|
---
|
155
|
155
|
|
156
|
|
-### Midiendo la similaridad de los colores de los pixeles
|
|
156
|
+### Midiendo la similaridad de los colores de los píxeles
|
157
|
157
|
|
158
|
158
|
Observa la Figura 4 abajo. Aunque el fondo en la *imagen A* parece uniforme, realmente incluye píxeles de diferentes colores (aunque parecidos).
|
159
|
159
|
|
|
@@ -205,8 +205,8 @@ Estarás trabajando con el archivo `Filter.cpp`. Lo que sigue es un resumen de l
|
205
|
205
|
* `backgroundImage`: referencia a la imagen para el fondo
|
206
|
206
|
* `mergedImage`: referencia a la imagen compuesta
|
207
|
207
|
* `threshold`: valor umbral usado para comparar las distancias entre el valor del color del píxel de la imagen con el objeto sobre fondo sólido. En el código que se provee, el valor del umbral se lee del valor de la barra deslizable.
|
208
|
|
-* `ghost`: valor Booleano utilizado para aplicar el filtro "fantasma" a los pixeles.
|
209
|
|
-* `(x, y)`: coordenadas de un pixel de la imagen del objeto sobre fondo sólido. El valor predeterminado es `(0,0)`.
|
|
208
|
+* `ghost`: valor Booleano utilizado para aplicar el filtro "fantasma" a los píxeles.
|
|
209
|
+* `(x, y)`: coordenadas de un píxel de la imagen del objeto sobre fondo sólido. El valor predeterminado es `(0,0)`.
|
210
|
210
|
* `(offset_x, offset_y)`: coordenadas de la imagen compuesta en donde la esquina superior izquierda de la imagen del objeto sobre fondo sólido será insertada. El valor predeterminado es `(0,0)`.
|
211
|
211
|
|
212
|
212
|
|
|
@@ -342,3 +342,6 @@ Utiliza "Entrega" en Moodle para entregar el archivo `Filter.cpp` que contiene l
|
342
|
342
|
|
343
|
343
|
|
344
|
344
|
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|