|
|
|
|
8
|
|
8
|
|
9
|
Dos tareas comunes cuando se trabaja con arreglos de datos son buscar datos y ordenarlos de forma ascendente o descendente. Dos algoritmos de ordenamiento sencillos y bien conocidos son el ordenamiento de selección (Selection Sort) y el ordenamiento de burbuja (Bubble Sort). Los algoritmos de ordenamiento forman parte de muchos programas; por ejemplo, listas de contactos, hojas de cálculo, y motores de búsqueda. En esta experiencia de laboratorio completarás una aplicación para procesar imágenes y practicarás el uso de algoritmos de ordenamiento. También aprenderás sobre la biblioteca `QImage` de `Qt` y sobre el filtro de mediana utilizado en el procesamiento de imágenes para remover "ruido"; en este caso, un turista impertinente.
|
9
|
Dos tareas comunes cuando se trabaja con arreglos de datos son buscar datos y ordenarlos de forma ascendente o descendente. Dos algoritmos de ordenamiento sencillos y bien conocidos son el ordenamiento de selección (Selection Sort) y el ordenamiento de burbuja (Bubble Sort). Los algoritmos de ordenamiento forman parte de muchos programas; por ejemplo, listas de contactos, hojas de cálculo, y motores de búsqueda. En esta experiencia de laboratorio completarás una aplicación para procesar imágenes y practicarás el uso de algoritmos de ordenamiento. También aprenderás sobre la biblioteca `QImage` de `Qt` y sobre el filtro de mediana utilizado en el procesamiento de imágenes para remover "ruido"; en este caso, un turista impertinente.
|
10
|
|
10
|
|
|
|
11
|
+Esta experiencia de laboratorio es una adaptación del "nifty assignment" presentado por John Nicholson en [1].
|
11
|
|
12
|
|
12
|
## Objetivos:
|
13
|
## Objetivos:
|
13
|
|
14
|
|
|
|
|
|
22
|
5. Aprender sobre el filtro de mediana para el procesamiento de imágenes.
|
23
|
5. Aprender sobre el filtro de mediana para el procesamiento de imágenes.
|
23
|
|
24
|
|
24
|
|
25
|
|
25
|
-Esta experiencia de laboratorio es una adaptación del "nifty assignment" presentado por John Nicholson en [1].
|
|
|
26
|
-
|
|
|
27
|
|
26
|
|
28
|
## Pre-Lab:
|
27
|
## Pre-Lab:
|
29
|
|
28
|
|
|
|
|
|
46
|
|
45
|
|
47
|
## Píxeles
|
46
|
## Píxeles
|
48
|
|
47
|
|
49
|
-Al elemento más pequeño de una imagen se le llama *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 2). Un cuarto de un byte especifica lo que se conoce como la *composición alfa*, la cual define la opacidad del píxel (0xff es totalmente opaco y 0x00 es totalmente transparente, e.g. invisible). A esta combinación se le llama el *ARGB* del color por las siglas de "Alpha-Red-Green-Blue". Por ejemplo, un píxel de color rojo puro tiene una representación RGB `0xffff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0xffffffff` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad). A través de esta experiencia de laboratorio, asumiremos que el alfa de los píxeles tiene opacidad total (0xff).
|
|
|
|
|
48
|
+Al elemento más pequeño de una imagen se le llama *píxel*. Cada píxel contiene un color que se obtiene mediante una combinación de tonalidades de los colores primarios rojo, verde y azul. La Figura 2 ilustra como se codifica la información de color de un píxel usando los bytes de un entero sin signo. Los tres bytes menos significativos indican las intensidades de rojo, verde y azul. El byte más significativo especifica lo que se conoce como la *composición alfa*, la cual define la opacidad del píxel (0xff es totalmente opaco y 0x00 es totalmente transparente, e.g. invisible). A esta combinación se le llama el *ARGB* del color por las siglas de "Alpha-Red-Green-Blue". Por ejemplo, un píxel de color rojo puro tiene una representación RGB `0xffff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0xffffffff` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad). A través de esta experiencia de laboratorio, asumiremos que el alfa de los píxeles tiene opacidad total (0xff).
|
50
|
|
49
|
|
51
|
---
|
50
|
---
|
52
|
|
51
|
|
|
|
|
|
67
|
|
66
|
|
68
|
## Procesamiento de imágenes
|
67
|
## Procesamiento de imágenes
|
69
|
|
68
|
|
70
|
-El procesamiento de imágenes es usado en una amplia variedad de aplicaciones que son relevantes socialmente. En las redes sociales, prácticamente cada vez que publicas una imagen, hay un filtro de procesamiento de imágenes tomando efecto. Las redes sociales, las cámaras, y los dispositivos móviles usan el procesamiento de imágenes para reconocimiento facial. Asimismo, investigadores usan el procesamiento de imágenes para contar organismos dentro de un espacio explorado, para detectar anomalías en las exploraciones de tomografías computarizadas ("CT scans"), y en general, para obtener mejor información acerca de objetos explorados.
|
|
|
|
|
69
|
+El procesamiento de imágenes es usado en una amplia variedad de aplicaciones que son relevantes socialmente. En las redes sociales, prácticamente cada vez que publicas una imagen, hay un filtro de procesamiento de imágenes tomando efecto. Las redes sociales, las cámaras, y los dispositivos móviles usan el procesamiento de imágenes para reconocimiento facial. Asimismo, investigadores usan el procesamiento de imágenes para contar organismos dentro de un espacio explorado, para detectar anomalías en tomografías computarizadas ("CT scans"), y en general, para obtener mejor información acerca de objetos explorados.
|
71
|
|
70
|
|
72
|
El filtro de mediana es uno de los filtros más simples utilizados en el procesamiento de imágenes. Este filtro es muy útil para remover objetos no deseados de las imágenes. Digamos que encuentras el árbol más interesante del mundo y quieres fotografiarlo; colocas tu equipo fotográfico, la luz es perfecta, y los colores son hermosos. Para estar segura de obtener la foto perfecta, tomas tres de ellas. Sin embargo, en el momento preciso en que se tomaron las fotos, un turista impertinente se metió en el medio de tu creación. El filtro de mediana te ayudará a remover el turista de la foto, fusionando las tres fotos en una en la que no aparecerá el turista.
|
71
|
El filtro de mediana es uno de los filtros más simples utilizados en el procesamiento de imágenes. Este filtro es muy útil para remover objetos no deseados de las imágenes. Digamos que encuentras el árbol más interesante del mundo y quieres fotografiarlo; colocas tu equipo fotográfico, la luz es perfecta, y los colores son hermosos. Para estar segura de obtener la foto perfecta, tomas tres de ellas. Sin embargo, en el momento preciso en que se tomaron las fotos, un turista impertinente se metió en el medio de tu creación. El filtro de mediana te ayudará a remover el turista de la foto, fusionando las tres fotos en una en la que no aparecerá el turista.
|
73
|
|
72
|
|
|
|
|
|
209
|
#### Algoritmo general para remover ruido de una imagen
|
208
|
#### Algoritmo general para remover ruido de una imagen
|
210
|
|
209
|
|
211
|
```
|
210
|
```
|
212
|
-
|
|
|
213
|
Input: VI, un vector con N imágenes
|
211
|
Input: VI, un vector con N imágenes
|
214
|
Output: una imagen sin ruido
|
212
|
Output: una imagen sin ruido
|
215
|
---------------------------------------
|
213
|
---------------------------------------
|
216
|
1. Para cada posición x,y:
|
214
|
1. Para cada posición x,y:
|
217
|
* P es un vector de tamaño N
|
215
|
* P es un vector de tamaño N
|
218
|
- * Asignar a los elementos de P los valores de los píxeles en la posicion (x,y) de las N imágenes de VI
|
|
|
|
|
216
|
+ * Asignar a los elementos de P los valores de los
|
|
|
217
|
+ píxeles en la posicion (x,y) de las N imágenes de VI
|
219
|
* M = mediana de los píxeles de P
|
218
|
* M = mediana de los píxeles de P
|
220
|
* Asignar el valor de M al píxel (x,y) de la imagen sin ruido
|
219
|
* Asignar el valor de M al píxel (x,y) de la imagen sin ruido
|
221
|
|
220
|
|