Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ahora vamos a pasar a cómo representar una imagen para que pueda procesarla usando transformaciones Así, dejamos una pregunta durante la última conferencia que es si el espectro de luces visibles es VIBGYOR de violeta a rojo, ¿por qué usamos una representación de color RGB, esperamos que todos tengan la oportunidad de pensar en ello, leer sobre él y averiguar la respuesta. La respuesta es que el ojo humano está formado por varillas y conos. Las varillas son responsables de detectar la intensidad en el mundo que nos rodea y los conos son responsables de capturar los colores y sucede que el ojo humano hay principalmente tres tipos de conos y estos conos tienen sensibilidades específicas y las sensibilidades de estos conos están en longitudes de onda específicas que están representadas por S, M y L en esta figura en particular. Así que, si usted mira donde estos conos pico en eso pasa a estar cerca de rojo, verde y azul y esa es la razón para representar las imágenes como rojo, verde y azul en toda la honestidad el pico no sucede exactamente rojo, verde y azul, en realidad sucede en los colores de entre, pero para la conveniencia sólo utilizamos R, G y B. Algunos hechos interesantes aquí sucede que las longitudes de onda M y L aquí son más fuertes en el cromosoma X, por lo que significa que los hombres que tienen el cromosoma XY, las hembras tienen el XX son más propensos a ser de color ciego. Así, tampoco es que todos los animales tengan los mismos tres conos mientras que los humanos tienen 3 conos, los animales de noche tienen 1 cono, los perros tienen 2 conos de pescado y las aves tienen más sensibilidad a los colores y se va a 4, 5 o en un mantis el camarón sube a 12 tipos diferentes de conos. Por lo tanto, la naturaleza tiene abundancia de cómo se perciben los colores. (02:42) En cuanto a cómo se representa una imagen, la manera más sencilla de representar una imagen que usted puede haber pensado ya es representar una imagen como una matriz. Así que, aquí está la imagen del Charminar y si se mira una pequeña porción de la imagen la parte del reloj se puede ver claramente que se puede acercar a ella y probablemente se puede representar como una matriz de valores en esta línea de caso entre 0 y 1 y, obviamente, tendrá una matriz similar para el resto de la imagen también. Así que, pero es muy común en la práctica mientras estamos hablando aquí de usarlo con valores 0 a 1, en la práctica las personas utilizan hasta un byte para representar cada píxel lo que significa que cada píxel tiene puede tomar un valor entre 0 y 255 a byte y un en la práctica también normalizamos estos valores entre 0 y 1 y esa es la razón por la que se ven este tipo de valores en una representación. Y también, para tener en cuenta es que por cada canal de color tendría una tal matriz si tuviera una imagen Roja, Verde, Azul, tendría una matriz para cada uno de estos canales. Cuál sería el tamaño de esta matriz, el tamaño de esta matriz dependería de la resolución de la imagen. Por lo tanto, vuelva a recordar lo que hablamos sobre el componente de detección de imágenes en la última conferencia, así que dependiendo de la resolución en que el sensor de imagen captura la imagen en, que decidiría la resolución y por lo tanto el tamaño de la matriz. (04:27) Una matriz no es la única manera de representar una imagen, una imagen también puede ser representada como una función, ¿por qué? Sólo nos ayuda a tener operaciones en las imágenes más eficazmente si representamos también como una función, ciertas operaciones por lo menos. Así que, en este caso podríamos hablar de que esta función va de R a R, donde simplemente corresponde a una ubicación de coordenadas 2 R 2 en particular en la imagen, digamos (i, j) y eso es lo que queremos decir por R. 2 Y el rango R es la intensidad de la imagen que podría suponer un valor entre 0 a 255 o 0 a 1 si se opta por normalizar la imagen. Y una imagen digital es una discreta versión cuantificada muestreada de esa función continua de la que acabamos de hablar, por qué es una versión cuantificada de muestra por muestra nos referimos a que la muestramos en esa resolución, originalmente la función puede ser continua que es como el mundo real en el que se capturó la imagen. A continuación, se muestra el mundo real en algunos valores de pixel en particular en alguna cuadrícula con respecto a un punto de referencia y eso es lo que llamamos como una versión discreta de muestra del original de la función continua original. Por qué cuantificados porque estamos diciendo que la intensidad se puede representar sólo como valores entre 0 y 255 y también en los mismos pasos no se puede tener un valor 0.5 por ejemplo al menos en este ejemplo particular. Obviamente puedes cambiarlo si te gusta en un entorno de captura en particular pero cuando hablamos de usar un byte para representar un pixel solo puedes tener 0, 1, 2 así que en y así sucesivamente hasta 255 no puedes tener un 0.5 por lo que en realidad discretiste o has cuantificado el valor de intensidad que tienes en la imagen. (06:25) Así que, hablemos de transformar las imágenes cuando las miramos como funciones, así que aquí hay una transformación de ejemplo para que tengas una cara y parecemos haber aligerado la cara de alguna manera. ¿Qué crees que es la transformación aquí? ¿Puedes adivinar? En caso de que no lo haya hecho, la transformación aquí es si su imagen de entrada era I y su imagen de salida era yo puedo decir que yo tengo el sombrero es I (x, y) más 20. Y 20 es solo un número si quieres que sea más ligero dirías más 30 o más 40, de nuevo aquí suponemos que los valores se encuentran entre 0 y 255. (07:11) Un ejemplo más, digamos que este es el siguiente ejemplo donde a la izquierda tienes una imagen fuente a la derecha que tienes una imagen objetivo. ¿Qué crees que es la transformación, la transformación es yo? (x, y) sería yo (− x, y). La imagen se refleja alrededor del eje vertical, y el eje es fijo y luego se gira, se voltea los valores del eje x. Si se nota aquí los dos ejemplos, las transformaciones pasan por un punto sabio o un píxel sabio, en ambos casos hemos definido la transformación a un nivel de píxel. ¿Es que la única manera de realizar una transformación? No necesariamente. (08:06) En términos generales tenemos tres tipos diferentes de operaciones que puedes realizar en una imagen que tienes operaciones puntuales, las operaciones puntuales son las que acabamos de hablar de dónde un píxel en la salida depende sólo de ese píxel en particular la misma ubicación de coordenadas en la entrada que sería una operación de punto. Una operación local es donde un píxel en la salida depende de toda una región o vecindario alrededor de esa coordenada en la imagen de entrada, y una operación global es aquella en la que el valor que un píxel asume en la imagen de salida depende de toda la entrada, en toda la imagen de entrada. En términos de complejidad para una operación puntual, la complejidad por píxel sería simplemente una constante, para una operación local la complejidad por píxel sería p cuadrado suponiendo un barrio pxp, vecindario local alrededor de la coordenada que usted considera para esa operación. Y en caso de operaciones globales obviamente la complejidad por pixel será N 2 donde la imagen es N x N. (09:29) Vamos a ver un par de operaciones de más puntos y luego vemos a nivel local y global, por lo que aquí hay una operación de punto muy popular que usted puede haber usado en su cámara de teléfonos inteligentes o en el photoshop de adobe o cualquier otra tarea de edición de imágenes de tareas que usted asumió. Es una tarea de mejora de la imagen y queremos revertir el contraste, invirtiendo el contraste que queremos que el negro se vuelva blanco y el gris oscuro para convertirse en gris claro así sucesivamente. ¿Qué te parece? ¿Cómo implementaría esta operación? En caso de que usted no lo ha trabajado todavía, la operación sería en un pixel en particular es una operación de punto así en particular pixel (m,) su salida será menos el píxel original en esa ubicación más, 0 n0 IMAX IMIN usted está flipping así que si usted tenía un valor decir 240 que es cercano a blanco generalmente blanco es a 255 y 0 es negro si usted tenía un valor 240, ahora que va a ser 15 porque yo en MAX nuestro caso es 255 y yo es 0. es 0, obviamente no importa pero esta fórmula es MIN IMIN IMIN suponiendo en un entorno más general donde podría ser algunos otros valores que usted tiene en la práctica de MIN. (10:57) En movimiento vamos a tomar un ejemplo más de mejora de imagen de nuevo, pero esta vez se va a hablar de estirar el contraste cuando estiramos el contraste, se está tomando el conjunto de valores y se está estirando para utilizar todo el conjunto de valores que cada píxel puede ocupar, por lo que puede ver aquí esta es de nuevo una operación muy común que ha utilizado si editó imágenes. ¿Qué crees que es la operación aquí esto es algo más complicado entonces el anterior, en caso de que ya no tengas la respuesta, recuerda que primero entremos la relación por lo que tienes un yo típico que es 255-0 por max de I en esta imagen menos min de I en MAX − IMIN esta imagen nos deja suponer hipotéticamente que esta imagen a la izquierda tenía su valor máximo para ser 200 y su valor min para ser 100. Si ese es el caso de toda esta proporción aquí que usted ve se va a convertir en 2.55 esto es (255-0 )/100. Así que, simplemente estás diciendo que voy a tomar el pixel original lo que sea que asumamos por el momento que el píxel original tenía un valor, digamos 150 así que si esto tuviera el valor 150 por lo que restaste un mínimo, así que lo que significa que tienes un valor el mínimo es 100, así que vas a tener 50 en 2,55 más I para nosotros que es 0 que aproximadamente llega a 128. MIN Así que es el 50 por ciento de la salida general. Así que, lo que era 150 que estaba en el medio del espectro en el rango de valores que teníamos para esta imagen de entrada ahora se convierte en 128 que se convierte en el centro del espectro para todo el conjunto de valores entre 0 a 255, usted simplemente está tratando de estirar el contraste que usted tiene para utilizar todos los valores que tiene entre 0 y 255. Lo que significa lo que habría pasado de gris oscuro a gris claro ahora va de negro a blanco que es como se aumenta un contraste, por lo que esto se llama contraste lineal estirando una operación sencilla de nuevo pero en la práctica hacemos algo más complicado. (13:27) Así que, hacemos lo que se conoce como la igualación de histograma que usted puede haber oído de nuevo acerca de que tal vez lo usó en ciertos ajustes si usted ha oído hablar de él, leer sobre él y que va a ser su tarea para este particular.conferencia. (13:41) Entonces, ¿dejar que las operaciones de punto de pregunta cumplan todos los requisitos que tenemos de operar en imágenes? Tomemos un ejemplo particular, por lo que sabemos que una sola intensidad de puntos influye en múltiples factores de los que hablamos en la última vez y puede que no nos lo diga todo porque influye en la fuerza de la fuente de luz, la dirección, la geometría de la superficie, la captura del sensor, la representación de la imagen y así sucesivamente. Por lo tanto, puede que no sea totalmente informativo así que tomemos un ejemplo para mostrar esto, así que supongamos que le damos una cámara y usted tiene una escena todavía sin movimiento cómo reducir el ruido utilizando las operaciones de punto. El ruido podría ser causa de un poco de polvo que sopla en la escena podría ser causa por motas de polvo en el lente de su cámara o por cualquier otra razón para que la materia podría ser un daño en uno de los sensores. El ruido podría ser en varios niveles, en varios niveles, ¿cómo reduciría el ruido usando sólo operaciones puntuales? La respuesta que tienes que tomar muchas imágenes y promedio de ellos porque todavía es escena, podemos seguir tomando imágenes y esperar que el ruido se promedia hacia fuera, a través de todas sus imágenes que usted tomó y usted toma el promedio de todas sus imágenes es un montón de matrices que simplemente puede tomar el elemento sabio promedio de todas esas matrices y que puede ayudar a mitigar el problema del ruido en cierta medida. Pero claramente ese es el tramo que no se obtienen múltiples imágenes para cada escena todo el tiempo y no se consigue una escena todavía que es absolutamente todavía todo el tiempo hasta que siempre hay algún movimiento y por lo que este puede no ser un método que funciona muy bien en la práctica. Por lo tanto, para ello tenemos que graduarnos de las operaciones puntuales a las operaciones locales. (15:31) Así que, veamos lo que significa una operación local, como ya hemos dicho que un valor de pixel en la salida depende de un vecindario entero de pixeles en la entrada alrededor de esa coordenada cualquiera que sea la coordenada que queremos evaluar la salida en. (15:47) Por lo tanto, aquí hay un ejemplo muy simple para entender lo que es el ejemplo estándar de la operación local es lo que se conoce como el promedio móvil, por lo que aquí tiene la imagen de entrada original I como se puede ver la imagen de entrada I es simplemente una caja blanca colocada en un fondo gris oscuro o en este caso un fondo negro porque se pueden ver ceros, ya que los valores asumen que eso significa un fondo negro. Por lo tanto, la imagen tiene la resolución particular en este caso en particular es una imagen de 10 × 10 y la caja blanca se encuentra en una región en particular. Pero el problema para nosotros es que vamos a suponer que este píxel negro en el medio aquí y este píxel blanco aquí son los píxeles de ruido que entraron inadvertidamente. Entonces, ¿cómo los retira? Por lo tanto, la forma en la que vamos a retirarlos es considerar un promedio móvil, por lo que se toma una ventana de 3 × 3, no es necesario ser 3 × 3 todo el tiempo podría ser de un tamaño diferente, más momento lo vamos a tomar 3 × 3 y simplemente tomar el promedio de los píxeles en esa región en particular. Por lo tanto, el promedio aquí sale a ser 0, por lo que lo rellenas en la ubicación central de esa caja. (17:03) Moving on you now move the 3 × 3 box to the next location you again take an average now the sum result out be 90, 90/9 = 10. Del mismo modo, mueva la caja deslizando la caja hasta más y una vez más tome el promedio de todos los píxeles en la caja en la entrada y eso le da un valor en la salida. Claramente se puede ver que se trata de una operación local, el pixel de salida depende de un vecindario local alrededor de la misma ubicación de coordenadas en la imagen de entrada. (17:46) Y puedes continuar este proceso y finalmente acabarás creando toda la imagen mirando algo así, por lo que puedes ver ahora que quizá tengas que sentarte los ojos para ver esto, puedes ver ahora que los píxeles aparentemente de ruido aquí y aquí en la entrada se han suavizado debido a los valores de los vecinos y la salida se ve mucho más suave, aquí hay una imagen de baja resolución por lo que se ve un poco blocky. Pero si usted tiene una resolución más alta se vería mucho más suave a sus ojos. Entonces, cuál es la operación que hicimos, intentemos escribir qué operación hicimos. Por lo tanto, hemos dicho aquí que yo en el punto de vista de un lugar en particular digamos (x, y) va a ser, usted va a tomar un barrio. Así que, lo que significa que vas a tomar la misma ubicación en tu imagen de entrada y decir que vas a pasar de decir x menos alguna ventana k a x más alguna ventana k. Del mismo modo, vamos a ir de algunos y-k a y + k y llamémosle a esto decir i, llamémosle a esto decir j que van a tomar los valores de todos esos píxeles en la imagen de entrada. Y obviamente vamos a promediar todos ellos, así que vas a multiplicar todo este valor por 1 por porque el barrio va de x-k a x + k hay totalmente 2 k + 1 píxeles allí. Por lo tanto, usted va a tener (2k + 1), porque para x tendrá 2k + 1 píxeles, para y tendrá 2 2k + 1 píxeles y luego usted sólo, por lo que el número total de píxeles va a ser 1 cruzar el otro y en este ejemplo particular que vimos k era 1 para nosotros, pasamos de x-1 a x + 1, por lo que si usted tomó una ubicación particular en la salida, usted tomó la ubicación correspondiente en la entrada y luego uno a la izquierda y uno a la derecha. Por lo tanto, de x-1 a x + 1, y-1 a y + 1 y eso crea una matriz de 3 × 3 para ti y eso es lo que vamos a normalizarlo finalmente. Eso se convierte en la operación que tiene para su promedio móvil, por lo que este es un ejemplo de una operación local. (20:11) Al pasar al último tipo de una operación llamada operación global como ya mencionamos en este caso, el valor en el pixel de salida depende de toda la imagen de entrada. ¿Puede usted pensar en ejemplos? (20:27) En caso de que ya no hayas descubierto, un fuerte ejemplo de algo así, esto lo que se conoce como una transformada de Fourier lo veremos en una conferencia un poco más tarde pero hay otras operaciones a que puede ser global dependiendo de diferentes aplicaciones, veremos más de esto un poco más tarde y vamos a hablar específicamente de la transformación de Fourier un poco más tarde. Eso es sobre esta conferencia así que sus lecturas van a ser el capítulo 3.1 del libro de Szeliski y también como mencionamos pensar en la pregunta y leer sobre la ecualización de histogramas y tratar de averiguar cómo funciona y cuál es la expresión que escribiría para que funcione.