0:00:00.840,0:00:05.641 Nesta seção, vamos tomar as técnicas que construímos até agora, mesmo com a 0:00:05.641,0:00:10.210 Quatro instrução de loop e se a técnica e média para detectar as áreas de cor, 0:00:10.210,0:00:14.996 e colocá-los juntos para fazer um efeito de filme realmente especial. Portanto, este efeito especial 0:00:14.996,0:00:19.477 chamado elenco azul. E noto que você pensa como dados de vídeo 0:00:19.477,0:00:23.905 é realmente apenas fez uma série regular de imagens estáticas só mostrou algo como 0:00:23.905,0:00:28.492 20 a 60 vezes por segundo. Assim, para os nossos propósitos, só vai fazer o efeito especial 0:00:28.492,0:00:33.293 imagens estáticas, e você pode ver como você pode generalizar para os filmes. Assim, a idéia é que você 0:00:33.293,0:00:37.561 ser um modelo muito simples. Suponha que você tenha a imagem sinal de stop. Então nós temos, nós falamos 0:00:37.561,0:00:41.551 sobre o código para detectar o vermelho em aqui. A Tela Azul 0:00:41.561,0:00:45.829 Na verdade, nós vamos ter que chamar uma segunda imagem, a imagem de fundo. 0:00:45.829,0:00:50.234 E a idéia é que podemos detectar o vermelho, como fizemos antes. Mas sempre 0:00:50.234,0:00:54.351 Eu recebo um pixel na área vermelha aqui, quero pensar sobre o tipo de 0:00:54.351,0:00:59.042 pixel correspondente na imagem outro. E eu vou copiar o pixel em 0:00:59.042,0:01:03.676 sorta preencher toda a área aqui com pixels vermelhos aqui a partir de outro 0:01:03.676,0:01:07.746 imagem. Desculpe, é um diagrama de um pouco mais detalhada do mesmo. Portanto, eu faço 0:01:07.746,0:01:11.959 Exemplos de um pouco mais. Mas teremos um loop onde somos quatro tipos de 0:01:11.959,0:01:16.379 através desta imagem loop. E nós temos uma declaração que irá se identificar 0:01:16.379,0:01:20.537 alguns dos pixels até agora. Então vamos dizer que nós identificamos esse pixel à esquerda 0:01:20.537,0:01:24.542 imagem. Para o pixel tem algumas coordenadas XY e nós não mexeu com o 0:01:24.542,0:01:28.650 Muito XY até agora, mas, você sabe, talvez é de 200 X e Y é de 100 ou o que quer. 0:01:28.805,0:01:33.212 Então, nós queremos fazer é pegar esses dois números. E depois encontrar a correspondente 0:01:33.212,0:01:37.750 pixel da outra imagem aqui. Então, talvez 200-100, ou seja o que for. 0:01:37.750,0:01:42.840 Há alguns pixels que correspondem. Assim, uma vez que temos essa imagem para um 0:01:42.840,0:01:47.867 pixel correspondente na imagem.[br]Então, queremos copiá-lo para estabelecer a 0:01:47.867,0:01:53.078 de pixel aqui. E você sabe, como? vai funcionar, como copiar um pixel 0:01:53.078,0:01:57.143 ¿Em? Você tem que pensar: 'Bem, o que define um pixel? O que faz um pixel 0:01:57.143,0:02:01.028 do jeito que? " E a resposta é de apenas três números. É apenas vermelho, 0:02:01.028,0:02:04.965 verde e azul. Então, vamos escrever código para classificar de obter o valor vermelho 0:02:04.965,0:02:08.950 Esse pixel aqui e depois estabelecido como o valor de vermelho aqui. Da mesma forma para 0:02:08.950,0:02:13.139 verde e azul. E configurar os três números para você fazer 0:02:13.139,0:02:17.326 pixel na imagem apenas ser exactamente o mesmo como o pixel aqui neste 0:02:17.326,0:02:22.183 lado. Então, aqui está algum código, aqui é o nosso primeiro exemplo de código para fazer isso. E mais 0:02:22.183,0:02:27.492 Eu sorta descrever o efeito, eu acho que neste caso só pode ser executado para que possamos ver 0:02:27.492,0:02:32.417 e depois vamos falar sobre o que fazem as linhas. Então aqui é o meio como 0:02:32.417,0:02:37.598 observado acima, o sinal de parada com tudo tudo sinal de parada áreas vermelho. 0:02:37.788,0:02:42.969 Nós substituímos o pixel da imagem tem no lugar. Então deixe-me salientar, 0:02:43.162,0:02:48.686 o, como as partes deste trabalho. Em primeiro lugar, pelo que foi em todos os exemplos até agora, eu acho que 0:02:48.686,0:02:52.866 acabamos de abrir uma imagem, mas pode ter várias imagens. Então aqui 0:02:52.866,0:02:56.587 Abra uma outra imagem para o jpeg de folhas, e armazenar em uma variável 0:02:56.587,0:03:01.231 retornar a chamada. Até então todo este código que já vimos antes. Eu apenas com a função de loop 0:03:01.231,0:03:06.258 Sinal de paragem e de detecção pixels vermelhos. Então a única coisa interessante está aqui em 0:03:06.258,0:03:11.169 Se declaração. O que fazemos quando temos um pixel vermelho. E pausas sorta 0:03:11.169,0:03:16.729 as três partes. Estas duas primeiras linhas simplesmente ligar e pixel.getY pixel.getX e 0:03:16.729,0:03:22.004 os valores resultantes armazenados nas variáveis xe y. Agora eu acho que eu não usei getX 0:03:22.004,0:03:26.693 e getY até agora, mas o que tho-que é simplesmente ir a um pixel e 0:03:26.693,0:03:31.840 recuperar qualquer x, e para além, portanto, muito semelhante a getRed e GetBlue. 0:03:32.311,0:03:37.903 Como já só podem ser armazenadas nestas variáveis x e. E então nesta linha. ME 0:03:37.903,0:03:42.681 tomar esses dois números, X e Y. realmente sorta esquerda você pode ler aqui. Portanto 0:03:42.681,0:03:47.340 I imagem da parte de trás, de modo é a imagem de folhas. E eu pergunto getPixel, então eu 0:03:47.340,0:03:52.116 Você quer recuperar um pixel dela. E então eu tenho que dar algum x e y, neste 0:03:52.116,0:03:56.775 se eu quiser usar x e y é x, e foi criado aqui. Como essencialmente 0:03:56.775,0:04:01.432 é x, y pixels sinal de parada imagem, dizendo que, qualquer que seja x, y, 0:04:01.432,0:04:06.574 vá olhar que s, o pixel na x no mesmo, ea imagem das folhas. OS. Uma vez que temos 0:04:06.574,0:04:12.016 que pixel, então eu vou começar uma outra variável chamada de pixel dois. Portanto 0:04:12.229,0:04:16.130 Pergunta ¿naturalmente seria como, oh bem, não poderia simplesmente pedir que pixel? Então, nós 0:04:16.130,0:04:20.130 pixel não é chamado, porque estamos usando para se referir a pixels pixels 0:04:20.130,0:04:23.983 a imagem do sinal de paragem. Assim, dois pixels só parecia óbvio sorta outra 0:04:23.983,0:04:29.122 nome para usar. Tudo bem, então agora eu tenho dois pixels e pixels refere-se a dois 0:04:29.122,0:04:34.156 o pixel da imagem de fundo da imagem. E agora estes três 0:04:34.156,0:04:39.002 linhas de fazer o que eu estava descrevendo anteriormente como uma cópia. Basta ver o primeiro. 0:04:39.002,0:04:43.444 Disse ponto pixel, todo vermelho. Como vimos, cerca de 100 vezes. Eu vou setembro 0:04:43.444,0:04:48.117 o valor do pixel da imagem de sinal vermelho. E o que, o que eu vou definir 0:04:48.117,0:04:52.836 Será que o valor vermelho? E o que eu vou defini-lo, é de cerca de dois pixels, ficam vermelhos. 0:04:52.836,0:04:57.699 Então, eu estou recebendo o pixel da imagem, obtendo o valor vermelho. Assim, 160, ou 0:04:57.699,0:05:02.252 o que quer. E eu só vou definir a imagem do sinal de stop. Portanto 0:05:02.252,0:05:07.175 Repita o procedimento para verde e azul são apenas essencialmente a mesma, estamos copiando o 0:05:07.175,0:05:11.786 três tamanhos. Assim, com efeito, essa cópia do pixel. Portanto, é muito 0:05:11.786,0:05:16.884 complicado. Eu quero fazer alguns exemplos. Deixe-me fazer um segundo exemplo. 0:05:16.884,0:05:22.108 Este é um retrato de bebê Abby, quando ela é de cerca de seis meses de idade. Bebê feliz 0:05:22.108,0:05:27.714 sua cadeirinha. E depois, quando ela é uma adolescente pode ficar com raiva de mim por usar 0:05:27.714,0:05:33.473 neste exemplo. O que vou fazer isso, ou, neste caso eu quero fazer é, 0:05:33.689,0:05:39.088 Observe as áreas verdes da cadeirinha. Eu quero que o tipo de cópia em 0:05:39.088,0:05:45.064 deixa de modo a obter este tipo de efeito bebê natureza exuberante. E, como vocês se lembram, há 0:05:45.064,0:05:50.934 eram, basicamente, duas coisas que eu precisava para fazer no loop aqui. Bem a primeira coisa que você deve 0:05:50.934,0:05:56.538 ponto, então eu estou, eu estou chamando para obter ponto de pixel verde, porque se o teste. Portanto 0:05:56.538,0:06:01.677 O primeiro problema foi esse. Obter o pixel para obter dois. Obter o pixel correspondente. 0:06:01.677,0:06:07.216 E aqui eu vou escrever uma única linha. Então eu digo, virar. Então eu vou para outro 0:06:07.216,0:06:12.451 imagem. Copiar pixels para ganhar pontos. E eu meio que o espaço aqui. Quero obter o 0:06:12.451,0:06:16.922 pixel da imagem, e então eu tenho que especificar o x, y. E aqui o que 0:06:16.922,0:06:21.220 quero fazer é, bem, quero especificar o x, y do pixel do sinal de parada 0:06:21.220,0:06:25.862 imagem. E o que eu fiz anteriormente para que x, y variáveis e bem, tudo bem. Mas 0:06:25.862,0:06:30.391 Eu estou, aqui eu estou indo para compactá-lo para baixo para fazê-lo em uma linha. Então, eu realmente 0:06:30.391,0:06:34.803 Só posso dizer, pixel.getX. Portanto pixel é o pixel na imagem do sinal de paragem. E 0:06:34.803,0:06:39.504 Você só pode chamar getX e você terá o valor de x em quando eu estou sozinho, eu vou colocar 0:06:39.504,0:06:45.547 aqui dentro. A chamada back.getPixel. Então esta é a idéia mesma de antes 0:06:45.547,0:06:50.622 mas eu só embalado em uma linha. Tudo bem, então um conjunto de linha 0:06:50.622,0:06:56.365 dois pixel correspondente no pixel.[br]E então a segunda coisa que devemos fazer 0:06:56.365,0:07:01.776 o loop é copiado durante esta operação, e que é literalmente a mesma coisa que eu vou 0:07:01.776,0:07:09.000 simplesmente, que eu copiei aqui de cima.[br]Muito bom. Agora livrar-se de branco. 0:07:09.000,0:07:15.370 Estas linhas em branco são inofensivos. Ok, então vamos tentar, vamos tentar. Muito bom. Portanto 0:07:15.370,0:07:21.579 Você pode ver que nós temos, estamos ficando um pouco da folha de dados aqui, mas 0:07:21.579,0:07:29.451 não um pouco mais fino. Então, precisamos torná-lo um pouco menor. 2,4 é uma 0:07:29.451,0:07:45.790 pouco mais, quero mais. Completar dois. Só um pouco mais e [som] 0:07:45.790,0:07:53.716 É muito. [Risos] Certo. Então vamos tentar 1,05. É muito para mim. Bem, eu acho 0:07:53.716,0:07:57.812 isso é muito bom. Como você pode ver, é uma espécie de, você sabe, não havia setas verdes 0:07:57.812,0:08:01.553 aqui. Há uma espécie de zona de sombra que tem, é, talvez apenas 0:08:01.553,0:08:05.447 verde. E então havia alguns cobertores verdes que ordenados a partir daqui 0:08:05.447,0:08:09.240 pontilhada com essas folhas. É um belo efeito. Ou, é um pouco perturbador, 0:08:09.240,0:08:13.437 direito, temos recebido estes pixels na imagem do boletim e colocá-los numa espécie de 0:08:13.437,0:08:17.228 esta outra imagem e aparência, bem, não inteiramente realista. Mas ele podia ver 0:08:17.228,0:08:20.970 onde, com ajustes, pode obter o efeito real. Ok, então vamos tentar uma 0:08:20.970,0:08:28.858 como nos filmes. Assim, o medo é a nossa estrela de cinema bonito. E eu tenho de tirar uma foto de macaco 0:08:28.858,0:08:33.764 frente de um fundo azul. É apenas uma toalha azul. Note-se que o macaco é 0:08:33.967,0:08:39.322 marrom e tem uma barriguinha aqui e Olá, esta banana é uma espécie de luz 0:08:39.322,0:08:44.692 amarelo. Então, se você pensar de marrom e castanho e amarelo são todos os tipos de. Por cerca de 0:08:44.692,0:08:48.607 ¿Amarelo, certo? Portanto, há uma grande quantidade de vermelho / verde, eu costumava fazer. Não muito 0:08:48.607,0:08:52.946 azul. Ele separa o fundo azul, em termos de pensamento do macaco 0:08:52.946,0:08:57.125 em termos de RGB, que vai funcionar muito bem. Então aqui é o que eu uso como o 0:08:57.125,0:09:01.676 Fundo. Este é um candidato para uma das fotos mais famosas já feitas. Este 0:09:01.676,0:09:05.697 é uma imagem tirada pelos astronautas da Apollo como eram oito, estavam em 0:09:05.697,0:09:10.087 órbita. Eles estavam voando ao redor da lua, e como eles vieram aqui, em torno da Terra 0:09:10.087,0:09:14.585 se aproximava. Digite show da terra no horizonte da Lua. [Inaudível] 0:09:14.585,0:09:19.894 apenas uma linha de vida pouco todos nós somos. Então, o que eu faço é começar com o macaco 0:09:19.894,0:09:25.315 imagem, e todos esses pixels azuis, quer jogar em pixels da Lua 0:09:25.315,0:09:31.815 imagem. E assim seria parecido com o macaco é como, em férias na lua. Então, eu vou 0:09:31.815,0:09:40.052 simplesmente pegar. O código para começar. Vamos ver. Ok, então o que eu faço é, para 0:09:40.052,0:09:46.778 Sim, quero dizer, se você começa azul. Então, vamos identificar o direito Quer um fundo azul? E se 0:09:46.778,0:09:53.590 é o fundo azul, e, em seguida, quero jogar em pixels da Lua,. Portanto 0:09:53.590,0:09:59.846 Aqui, novamente, a nossa imagem é mono Moon [inaudível] Eu tenho a minha declaração se. E 0:09:59.846,0:10:04.092 Então, isso [inaudível] é invariante, certo? É apenas, obter a correspondente 0:10:04.092,0:10:08.456 manteve-se inalterada a partir do exemplo anterior. Então é só pegar o correspondente 0:10:08.456,0:10:12.528 cópia do pixel em vermelho, verde, azul. Sem a necessidade de mudança em tudo. 0:10:12.702,0:10:18.408 Ok, então vamos tentar. Ok, então, 1,5 o que está acontecendo aqui é se 0:10:18.408,0:10:23.952 Declaração nunca é acionado. Eu especifiquei que eu fiz a cerca muito alta. Vale a pena 0:10:23.952,0:10:32.818 vamos tentar 1,3. Ah, só uma caça pequenino. Então, eu estou muito alto. Vamos tentar 1.1. Hey, 0:10:32.818,0:10:38.332 direito. Agora você pode ver, você sabe, s, azulado desta parte do azul 0:10:38.332,0:10:43.846 fundo era talvez um pouco mais, por isso estamos recebendo, mas não para baixo 0:10:43.846,0:10:49.081 aqui. Como deve tentar 1,0. Agora ele está chegando lá. Temos um pouco menos, 0:10:49.081,0:10:54.595 para que possamos realmente ir ir em um aqui por isso vou tentar 0,9, como o 0:10:54.595,0:11:00.109 Hurdle onde eu estou um pouco abaixo do obstáculo.[br]Ooh, é muito bom. Ver, há um 0:11:00.109,0:11:05.650 Lua pouquinho em seu queixo lá. 0,95. Aqui vamos nós, o que é bom 0:11:05.650,0:11:10.365 bom. Poderíamos, poderíamos definir isso [inaudível], eu acho, três, há uma 0:11:10.365,0:11:16.157 pouco, aqui vamos nós. Eu acho que é perfeito. Portanto, pode ser visto que tem sabe, 0:11:16.157,0:11:22.511 como uma estrela de cinema nas batalhas de laser, naves espaciais, o que quer. Muito bom. Apenas para 0:11:22.511,0:11:27.245 resumir um pouco. No código que você tem duas imagens em vez de um e depois 0:11:27.245,0:11:31.360 percorrer o caminho principal e só um pouco que já fizemos antes, 0:11:31.360,0:11:36.150 identificar as áreas de uma cor. E então, depois de ter identificado uma área em 0:11:36.150,0:11:40.716 a cor está em causa, então existe esta operação para localizar o correspondente 0:11:40.716,0:11:45.282 pixels da outra imagem e, em seguida, copiar os valores de vermelho, verde, azul, para 0:11:45.282,0:11:49.677 para obter o efeito. E como você pode imaginar. Você sabe, é muito fácil 0:11:49.677,0:11:52.440 são exercícios que trabalham com esta técnica.