WEBVTT 00:00:00.840 --> 00:00:05.641 En esta sección vamos a tomar las técnicas que hemos construido hasta ahora, hasta con la 00:00:05.641 --> 00:00:10.210 bucle de cuatro y si declaración y la media técnica para detectar las áreas de color, 00:00:10.210 --> 00:00:14.996 y ponerlos juntos hacer un efecto especial de película real. Por eso este efecto especial 00:00:14.996 --> 00:00:19.477 llama proyección azul. Y debo señalar lo que piensas como datos de vídeo 00:00:19.477 --> 00:00:23.905 es realmente acaba de hacer una serie de imágenes fijas regulares, sólo mostró algo parecido 00:00:23.905 --> 00:00:28.493 20 a 60 veces por segundo. Por lo que para nuestros propósitos sólo haremos el efecto especial 00:00:28.493 --> 00:00:33.294 en imágenes fijas, y se puede ver cómo podrá generalizar al cine. Así que la idea es que te 00:00:33.294 --> 00:00:37.561 ser un modelo muy simple. Imagine que tiene la imagen de señal de stop. Por lo que tenemos, hemos hablado 00:00:37.561 --> 00:00:41.551 acerca del código para detectar el área roja dentro de aquí. Lo de la pantalla azul 00:00:41.562 --> 00:00:45.830 efecto, nos estamos va a tener una segunda imagen que llamaré, la imagen de fondo. 00:00:45.830 --> 00:00:50.234 Y la idea es que nos podrá detectar las zonas rojas, como lo hemos hecho antes. Pero siempre 00:00:50.234 --> 00:00:54.352 Obtengo un píxel aquí en el área roja, Wanna pensar sobre el tipo de 00:00:54.352 --> 00:00:59.043 píxel correspondiente sobre de esta otra imagen. Y me vas a copiar ese píxel sobre 00:00:59.043 --> 00:01:03.676 sorta rellenar toda el área rojo aquí con píxeles aquí desde otro 00:01:03.676 --> 00:01:07.747 imagen. Lo sentimos, es un diagrama un poco más detallado del mismo. Por lo tanto, voy a hacer 00:01:07.747 --> 00:01:11.959 ejemplos de un poco más. Pero vamos a tener un bucle de cuatro donde estamos tipo de 00:01:11.959 --> 00:01:16.379 bucle a través de esta imagen. Y tendremos un if instrucción que se va a identificar 00:01:16.379 --> 00:01:20.538 algunos de los píxeles hasta aquí. Así que vamos a decir que nosotros hemos identificado este píxel en la izquierda 00:01:20.538 --> 00:01:24.542 imagen. Para que el píxel tiene algunas coordenadas XY y nosotros no hemos metido con el 00:01:24.542 --> 00:01:28.650 XY mucho hasta ahora pero, usted sabe, quizás es de 200 X y y es 100 o lo que sea. 00:01:28.806 --> 00:01:33.212 Por lo que queremos hacer es obtener esos dos números. Y luego encontrar el correspondiente 00:01:33.212 --> 00:01:37.750 píxel aquí desde la otra imagen. Por lo tanto, tal vez a 200-100, o lo que sea es. 00:01:37.750 --> 00:01:42.840 Hay algunos píxeles que coincida. Así que una vez que tenemos esa imagen correspondiente, un 00:01:42.840 --> 00:01:47.868 píxel correspondiente de la imagen. Luego queremos copiarlo, para establecer la 00:01:47.868 --> 00:01:53.079 píxel aquí. Y ya sabes, cómo? s que va a trabajar, cómo copiar un píxel 00:01:53.079 --> 00:01:57.143 ¿sobre? Tienes que pensar, ' bueno, ¿qué define a un píxel? ¿Qué hace un píxel 00:01:57.143 --> 00:02:01.029 el camino parece?' Y la respuesta es sólo los tres números. Es sólo rojo, 00:02:01.029 --> 00:02:04.965 verde y azul. Así que vamos a escribir código para una especie de obtener el valor rojo de 00:02:04.965 --> 00:02:08.951 Este píxel aquí y, a continuación, que establece como el valor rojo aquí. Asimismo para 00:02:08.951 --> 00:02:13.139 verde y azul. Y estableciendo los tres números sobre los vas a hacer el 00:02:13.139 --> 00:02:17.327 píxel sobre esta imagen sólo exactamente el mismo aspecto como el píxel aquí en este 00:02:17.327 --> 00:02:22.184 lateral. Por lo tanto, aquí es parte del código, aquí está nuestro primer ejemplo de código para hacer esto. Y más bien 00:02:22.184 --> 00:02:27.493 que sorta describir el efecto, creo que en este caso sólo podrá ejecutarla por lo que podemos ver 00:02:27.493 --> 00:02:32.417 y, a continuación, lo hablaremos acerca de lo que hacen las líneas. Por lo tanto, aquí vemos el sorta como 00:02:32.417 --> 00:02:37.598 se indicó antes, la parada de firmar con todos sus todas las áreas rojas de la señal de stop. 00:02:37.789 --> 00:02:42.970 Nos hemos sustituido en píxeles de la imagen lleva en su lugar. Así que permítanme señalar, 00:02:43.162 --> 00:02:48.686 el, cómo las partes de este trabajo. En primer lugar, por lo que fuera en todos los ejemplos hasta ahora, creo que 00:02:48.686 --> 00:02:52.866 sólo hemos abierto una imagen, pero resulta que puede tener varias imágenes. Así que aquí 00:02:52.866 --> 00:02:56.588 Abrir una segunda imagen para el jpeg de hojas, y almacenar en una variable 00:02:56.588 --> 00:03:01.232 devolver la llamada. Hasta entonces todo este código que hemos visto antes. Sólo estoy función de bucle en el 00:03:01.232 --> 00:03:06.259 señal de Stop y detectar los píxeles rojos. Así que lo interesante es aquí dentro de 00:03:06.259 --> 00:03:11.169 Si declaración. ¿Qué hacemos cuando tenemos un píxel rojo. Y rompe sorta 00:03:11.169 --> 00:03:16.730 a las tres partes. Estas dos primeras líneas sólo llamar pixel.getX y pixel.getY, y 00:03:16.730 --> 00:03:22.005 almacenar los valores resultantes en las variables x e y. Ahora creo que no he usado getX 00:03:22.005 --> 00:03:26.694 y getY hasta ahora, pero lo que tho-, quienes lo es simplemente ir a un píxel y 00:03:26.694 --> 00:03:31.840 recuperar cualquiera que sea su x, y fuera de ella, por lo tanto muy análoga a la getRed y getBlue. 00:03:32.311 --> 00:03:37.904 Por lo que sólo me va a almacenar en estas variables x y. Y entonces en esta línea. ME 00:03:37.904 --> 00:03:42.681 tomar esos dos números, x e y. realmente sorta podrá leer dejó a aquí. Por lo tanto 00:03:42.681 --> 00:03:47.340 Voy a la imagen de la espalda, por lo es, la imagen de hojas. Y pido getPixel, así que me 00:03:47.340 --> 00:03:52.116 ¿quieres recuperar un píxel de la misma. Y entonces tengo que darle algunos x y y, en este 00:03:52.116 --> 00:03:56.775 caso x e y que i wanna uso es el x, y que fue establecido aquí. Tan esencialmente, 00:03:56.775 --> 00:04:01.433 es el x, y del píxel de la parada de firmar imagen, diciendo, lo que sea que x, y, 00:04:01.433 --> 00:04:06.574 ir a buscar que s, el píxel en la x de la misma, y de la imagen de hojas. SO. Una vez que tenemos 00:04:06.574 --> 00:04:12.017 ese píxel, luego yo sólo voy a iniciar otra variable denominada píxel dos. Por lo tanto 00:04:12.230 --> 00:04:16.131 ¿Pregunta natural sería como, oh bien no podíamos simplemente pedimos ese píxel? Así nos 00:04:16.131 --> 00:04:20.131 no se llama píxel, porque ya estamos usando píxeles para referirse a los píxeles 00:04:20.131 --> 00:04:23.984 la imagen de la señal de stop. Así, dos píxeles sólo parecían sorta más obvia otros 00:04:23.984 --> 00:04:29.122 nombre que se utilizará. Todos los derechos, así que en este momento, tengo dos píxeles y píxel dos se refiere a 00:04:29.122 --> 00:04:34.156 el píxel de la imagen de fondo de la imagen. Y ahora, estos tres 00:04:34.156 --> 00:04:39.003 líneas de hacen lo que estaba describiendo antes como una copia. Tan sólo veamos la primera de ellas. 00:04:39.003 --> 00:04:43.445 Dice punto de píxel, conjunto rojo. Por lo que hemos visto, como 100 veces. I'm gonna set 00:04:43.445 --> 00:04:48.118 el valor del píxel de la imagen de señal de stop rojo. ¿Y qué, ¿qué soy va a establecer 00:04:48.118 --> 00:04:52.837 ¿ese valor rojo que? Y lo que me va a definir que es, es, punto dos, píxeles, obtener rojo. 00:04:52.837 --> 00:04:57.699 Por lo que estoy recibiendo el píxel de la imagen, obteniendo el valor rojo. Así, 160, o 00:04:57.699 --> 00:05:02.253 sea lo que sea. Y estoy solo que va a definir en la imagen de señal de stop. Por lo tanto 00:05:02.253 --> 00:05:07.176 repetir que para verde y azul, somos simplemente, esencialmente justa, nos estamos copiando el 00:05:07.176 --> 00:05:11.787 tres números más. Así que, en efecto, esta copia del píxel. Por lo tanto, es muy 00:05:11.787 --> 00:05:16.885 complicado. Quiero hacer algunos ejemplos de esto. Permítanme hacer un segundo ejemplo. 00:05:16.885 --> 00:05:22.109 Esto es una imagen del bebé Abby, cuando ella es como seis meses de edad. Bebé poco feliz en 00:05:22.109 --> 00:05:27.715 su silla bouncy. Y más tarde cuando ella es una adolescente puede ser loco a mí para utilizar 00:05:27.715 --> 00:05:33.474 en este ejemplo. ¿Qué voy a hacer eso, o, en este caso lo que quiero hacer es, 00:05:33.690 --> 00:05:39.089 Observe las áreas verdes de la Cátedra bouncy. Quiero que el tipo de copia sobre el 00:05:39.089 --> 00:05:45.064 hojas por lo que obtener este tipo de efecto frondosos de bebé de naturaleza. Y, como recordarán, hay 00:05:45.064 --> 00:05:50.934 eran básicamente dos cosas que necesitaba hacer en el bucle de aquí. Bueno lo primero que debería 00:05:50.934 --> 00:05:56.539 punto, por lo que soy, voy a llamar píxel punto obtener verde, pues si, la prueba. Por lo tanto 00:05:56.539 --> 00:06:01.677 el primer problema fue esto. Obtener el píxel de obtener dos. Obtenga el píxel correspondiente. 00:06:01.677 --> 00:06:07.216 Y aquí voy a escribir como una sola línea. Por eso digo, vuelta. Así que voy a otro 00:06:07.216 --> 00:06:12.451 imagen. Copia píxeles de obtener puntos. Y voy tipo de espacio aquí. Quiero obtener el 00:06:12.451 --> 00:06:16.922 píxel de la imagen, y entonces tengo que especificar el x, y. Y aquí lo que 00:06:16.922 --> 00:06:21.220 queremos hacer es, bueno, Wanna especificar la x, y y del píxel de la señal de stop 00:06:21.220 --> 00:06:25.863 imagen. Y previamente lo que hice por tener x, y variables y bueno, eso está bien. Pero 00:06:25.863 --> 00:06:30.391 Estoy, en este caso yo estoy va a compactarlo abajo para hacerlo en una sola línea. Así que realmente 00:06:30.391 --> 00:06:34.804 Sólo puedo decir, pixel.getX. Por lo tanto píxel es el píxel de la imagen de señal de stop. Y 00:06:34.804 --> 00:06:39.504 Sólo podrá llamar a getX y que obtiene que el valor de x y luego me voy solo, voy a poner 00:06:39.504 --> 00:06:45.547 directamente aquí dentro de. La llamada back.getPixel. Así que esta es la misma idea como antes 00:06:45.547 --> 00:06:50.623 pero sólo he compactado lo a una línea. Todo derecho, por lo una línea establece 00:06:50.623 --> 00:06:56.366 dos que el píxel correspondiente de píxel. Y, a continuación, la segunda cosa que debemos hacer 00:06:56.366 --> 00:07:01.776 el bucle es esta copia durante la operación, y que sólo literalmente es el mismo por lo que iré 00:07:01.776 --> 00:07:09.000 simplemente, voy copiar que desde aquí arriba. Muy bien. Ahora deshacerse del blanco. 00:07:09.000 --> 00:07:15.371 Estas líneas en blanco son inofensivas. Muy bien, así que vamos a tratar, vamos a intentar. Muy bien. Por lo tanto 00:07:15.371 --> 00:07:21.579 Puedes ver que tenemos, estamos obteniendo un poco de los datos de la hoja aquí pero 00:07:21.579 --> 00:07:29.451 no es un poco delgado. Así que necesitamos hacer esto un poco más pequeño. 2.4 es una 00:07:29.451 --> 00:07:45.790 poco más, quieren más. Completar dos. Sólo un poco más y [sonido] 00:07:45.790 --> 00:07:53.717 Demasiado. [risa] Muy bien. Así que vamos a tratar de 1.05. Demasiado para mí. Bueno, creo que 00:07:53.717 --> 00:07:57.812 eso es bastante bueno. Por lo que se puede ver, es una especie de, ustedes saben, hubo flechas verdes 00:07:57.812 --> 00:08:01.554 aquí. Hay una especie de la zona de sombra que tiene, es decir, quizás apenas 00:08:01.554 --> 00:08:05.448 verdoso. Y luego hubo algunas mantas verdes aquí que ordenamos de 00:08:05.448 --> 00:08:09.240 salpicado estas hojas. Por lo que es, es un lindo efecto. O, es algo inquietante, 00:08:09.240 --> 00:08:13.437 derecho, que hemos recibido estos píxeles de la imagen de la hoja y una especie de ponerlos en 00:08:13.437 --> 00:08:17.229 esta otra imagen y se ve, bueno, no es totalmente realista. Pero pudo ver 00:08:17.229 --> 00:08:20.970 donde, con ajuste, podría conseguir este efecto real. Muy bien, así que vamos a tratar de uno 00:08:20.970 --> 00:08:28.858 como las películas. Por lo que el miedo es nuestro mono estrella de cine. Y he tomado una foto de mono 00:08:28.858 --> 00:08:33.765 delante de un fondo azul. Es sólo una toalla azul. Verá que el mono es 00:08:33.968 --> 00:08:39.322 marrón y tiene una ligera barriga aquí y Hola, esta banana es una especie de una luz 00:08:39.322 --> 00:08:44.693 amarillo. Así que si piensas de brown y bronceado y amarillo, son todos tipo de. Por cerca de 00:08:44.693 --> 00:08:48.608 ¿amarillo, correcto? Así que hay un montón de rojo/verde, solía hacerlo. No mucho 00:08:48.608 --> 00:08:52.946 de color azul. Así que separa el fondo azul, en términos de pensar en el mono 00:08:52.946 --> 00:08:57.126 en términos de RGB, se va a trabajar bastante bien. Así que aquí es lo que quiero utilizar como el 00:08:57.126 --> 00:09:01.676 Fondo. Se trata de un candidato para uno de los cuadros más famosos jamás tomados. Esto 00:09:01.676 --> 00:09:05.697 es una imagen tomada por los astronautas de Apolo ocho como lo fueron, estaban en 00:09:05.697 --> 00:09:10.088 órbita. Ellos estaban volando alrededor de la Luna, y como vinieron aquí, alrededor de la tierra 00:09:10.088 --> 00:09:14.585 loomed. Tipo de mostrar la tierra justo sobre el horizonte de la Luna. [inaudible] 00:09:14.585 --> 00:09:19.895 sólo un salvavidas poco que somos todos. Así que lo que quiero hacer es empezar con el mono 00:09:19.895 --> 00:09:25.315 imagen, y para todos estos píxeles azules, quieren tirar en píxeles desde la Luna 00:09:25.315 --> 00:09:31.815 imagen. Y así se vería como el mono es como, de vacaciones en la Luna. Así que iré 00:09:31.815 --> 00:09:40.053 simplemente agarrar. Este código para empezar. Vamos a ver. Muy bien, así que lo que quiero hacer es, para la 00:09:40.053 --> 00:09:46.779 Si, quiero decir si consigue azul. ¿Por lo tanto Wanna detectar el derecho de fondo azul? Y si 00:09:46.779 --> 00:09:53.590 es el fondo azul y, a continuación, Wanna Tire en píxeles desde la Luna, el. Por lo tanto 00:09:53.590 --> 00:09:59.847 aquí nuestra imagen es mono vuelve Luna [inaudible] I've got mi si declaración. Y 00:09:59.847 --> 00:10:04.093 ¿entonces, esto [inaudible] es invariable, verdad? Es justo, obtener la correspondiente 00:10:04.093 --> 00:10:08.457 ha sin cambios desde el ejemplo anterior. Por lo que acaba de obtener la correspondiente 00:10:08.457 --> 00:10:12.529 píxel, copia en rojo, verde, azul. Lo que no requiere cambiar en absoluto. 00:10:12.703 --> 00:10:18.409 Muy bien, así que vamos a probarlo. Muy bien, así que, a 1,5 lo que está ocurriendo aquí es si 00:10:18.409 --> 00:10:23.953 Declaración nunca es disparar. He especificado que he hecho la valla demasiado alta. Vale lo 00:10:23.953 --> 00:10:32.819 vamos a intentar 1.3. Ah, sólo un poco teeny hunt. Así que estoy demasiado alto. Vamos a intentar 1.1. Eh, 00:10:32.819 --> 00:10:38.333 bien. Ahora que puede ver, ustedes saben, s, la bluishness de esta parte de la azul 00:10:38.333 --> 00:10:43.847 fondo tal vez sólo fue un poco más, por lo estamos recibiendo, pero no hacia abajo 00:10:43.847 --> 00:10:49.081 aquí. Por lo que se deba tratar de 1.0. Ahora es llegar allí. Tenemos un poco menos, 00:10:49.081 --> 00:10:54.595 así que realmente podemos ir podemos ir bajo uno aquí por lo que voy a tratar de 0,9 como la 00:10:54.595 --> 00:11:00.109 Hurdle donde sólo estoy bajando el obstáculo. Ooh, es bastante buena. Ver, hay una 00:11:00.109 --> 00:11:05.651 teeny poco de Luna en su barbilla allí. 0.95. Allá vamos, que es bonito 00:11:05.651 --> 00:11:10.365 buena. Podríamos, nosotros podríamos ajustar esto [inaudible], creo, tres, hay un 00:11:10.365 --> 00:11:16.157 poco de, allá vamos. Creo que es perfecto. Por lo tanto, puede ver que tiene, sabes, 00:11:16.157 --> 00:11:22.512 como estrella de cine en las batallas de láser, nave espacial, como sea. Muy bien. Tan sólo a 00:11:22.512 --> 00:11:27.246 resumir un poco. En el código vas a tener dos imágenes en lugar de uno y luego 00:11:27.246 --> 00:11:31.361 bucle a través de la imagen principal y sólo un poco la forma en que hemos hecho antes, 00:11:31.361 --> 00:11:36.151 identificar áreas de algún color. Y luego, una vez que haya identificado una zona que se encuentra en 00:11:36.151 --> 00:11:40.717 el color preocupa, entonces no existe esta operación para localizar el correspondiente 00:11:40.717 --> 00:11:45.282 píxeles de otra imagen y luego copiar sus valores rojos, verdes, azules, a 00:11:45.282 --> 00:11:49.678 obtener el efecto de hacer. Y como se puede imaginar. Ustedes saben, es bastante fácil 00:11:49.678 --> 00:11:52.440 son ejercicios que trabajan sobre esta técnica.