Nesta seção, vamos tomar as técnicas que construímos até agora, mesmo com a Quatro instrução de loop e se a técnica e média para detectar as áreas de cor, e colocá-los juntos para fazer um efeito de filme realmente especial. Portanto, este efeito especial chamado elenco azul. E noto que você pensa como dados de vídeo é realmente apenas fez uma série regular de imagens estáticas só mostrou algo como 20 a 60 vezes por segundo. Assim, para os nossos propósitos, só vai fazer o efeito especial imagens estáticas, e você pode ver como você pode generalizar para os filmes. Assim, a idéia é que você ser um modelo muito simples. Suponha que você tenha a imagem sinal de stop. Então nós temos, nós falamos sobre o código para detectar o vermelho em aqui. A Tela Azul Na verdade, nós vamos ter que chamar uma segunda imagem, a imagem de fundo. E a idéia é que podemos detectar o vermelho, como fizemos antes. Mas sempre Eu recebo um pixel na área vermelha aqui, quero pensar sobre o tipo de pixel correspondente na imagem outro. E eu vou copiar o pixel em sorta preencher toda a área aqui com pixels vermelhos aqui a partir de outro imagem. Desculpe, é um diagrama de um pouco mais detalhada do mesmo. Portanto, eu faço Exemplos de um pouco mais. Mas teremos um loop onde somos quatro tipos de através desta imagem loop. E nós temos uma declaração que irá se identificar alguns dos pixels até agora. Então vamos dizer que nós identificamos esse pixel à esquerda imagem. Para o pixel tem algumas coordenadas XY e nós não mexeu com o Muito XY até agora, mas, você sabe, talvez é de 200 X e Y é de 100 ou o que quer. Então, nós queremos fazer é pegar esses dois números. E depois encontrar a correspondente pixel da outra imagem aqui. Então, talvez 200-100, ou seja o que for. Há alguns pixels que correspondem. Assim, uma vez que temos essa imagem para um pixel correspondente na imagem. Então, queremos copiá-lo para estabelecer a de pixel aqui. E você sabe, como? vai funcionar, como copiar um pixel ¿Em? Você tem que pensar: 'Bem, o que define um pixel? O que faz um pixel do jeito que? " E a resposta é de apenas três números. É apenas vermelho, verde e azul. Então, vamos escrever código para classificar de obter o valor vermelho Esse pixel aqui e depois estabelecido como o valor de vermelho aqui. Da mesma forma para verde e azul. E configurar os três números para você fazer pixel na imagem apenas ser exactamente o mesmo como o pixel aqui neste lado. Então, aqui está algum código, aqui é o nosso primeiro exemplo de código para fazer isso. E mais Eu sorta descrever o efeito, eu acho que neste caso só pode ser executado para que possamos ver e depois vamos falar sobre o que fazem as linhas. Então aqui é o meio como observado acima, o sinal de parada com tudo tudo sinal de parada áreas vermelho. Nós substituímos o pixel da imagem tem no lugar. Então deixe-me salientar, o, como as partes deste trabalho. Em primeiro lugar, pelo que foi em todos os exemplos até agora, eu acho que acabamos de abrir uma imagem, mas pode ter várias imagens. Então aqui Abra uma outra imagem para o jpeg de folhas, e armazenar em uma variável retornar a chamada. Até então todo este código que já vimos antes. Eu apenas com a função de loop Sinal de paragem e de detecção pixels vermelhos. Então a única coisa interessante está aqui em Se declaração. O que fazemos quando temos um pixel vermelho. E pausas sorta as três partes. Estas duas primeiras linhas simplesmente ligar e pixel.getY pixel.getX e os valores resultantes armazenados nas variáveis xe y. Agora eu acho que eu não usei getX e getY até agora, mas o que tho-que é simplesmente ir a um pixel e recuperar qualquer x, e para além, portanto, muito semelhante a getRed e GetBlue. Como já só podem ser armazenadas nestas variáveis x e. E então nesta linha. ME tomar esses dois números, X e Y. realmente sorta esquerda você pode ler aqui. Portanto I imagem da parte de trás, de modo é a imagem de folhas. E eu pergunto getPixel, então eu Você quer recuperar um pixel dela. E então eu tenho que dar algum x e y, neste se eu quiser usar x e y é x, e foi criado aqui. Como essencialmente é x, y pixels sinal de parada imagem, dizendo que, qualquer que seja x, y, vá olhar que s, o pixel na x no mesmo, ea imagem das folhas. OS. Uma vez que temos que pixel, então eu vou começar uma outra variável chamada de pixel dois. Portanto Pergunta ¿naturalmente seria como, oh bem, não poderia simplesmente pedir que pixel? Então, nós pixel não é chamado, porque estamos usando para se referir a pixels pixels a imagem do sinal de paragem. Assim, dois pixels só parecia óbvio sorta outra nome para usar. Tudo bem, então agora eu tenho dois pixels e pixels refere-se a dois o pixel da imagem de fundo da imagem. E agora estes três linhas de fazer o que eu estava descrevendo anteriormente como uma cópia. Basta ver o primeiro. Disse ponto pixel, todo vermelho. Como vimos, cerca de 100 vezes. Eu vou setembro o valor do pixel da imagem de sinal vermelho. E o que, o que eu vou definir Será que o valor vermelho? E o que eu vou defini-lo, é de cerca de dois pixels, ficam vermelhos. Então, eu estou recebendo o pixel da imagem, obtendo o valor vermelho. Assim, 160, ou o que quer. E eu só vou definir a imagem do sinal de stop. Portanto Repita o procedimento para verde e azul são apenas essencialmente a mesma, estamos copiando o três tamanhos. Assim, com efeito, essa cópia do pixel. Portanto, é muito complicado. Eu quero fazer alguns exemplos. Deixe-me fazer um segundo exemplo. Este é um retrato de bebê Abby, quando ela é de cerca de seis meses de idade. Bebê feliz sua cadeirinha. E depois, quando ela é uma adolescente pode ficar com raiva de mim por usar neste exemplo. O que vou fazer isso, ou, neste caso eu quero fazer é, Observe as áreas verdes da cadeirinha. Eu quero que o tipo de cópia em deixa de modo a obter este tipo de efeito bebê natureza exuberante. E, como vocês se lembram, há eram, basicamente, duas coisas que eu precisava para fazer no loop aqui. Bem a primeira coisa que você deve ponto, então eu estou, eu estou chamando para obter ponto de pixel verde, porque se o teste. Portanto O primeiro problema foi esse. Obter o pixel para obter dois. Obter o pixel correspondente. E aqui eu vou escrever uma única linha. Então eu digo, virar. Então eu vou para outro imagem. Copiar pixels para ganhar pontos. E eu meio que o espaço aqui. Quero obter o pixel da imagem, e então eu tenho que especificar o x, y. E aqui o que quero fazer é, bem, quero especificar o x, y do pixel do sinal de parada imagem. E o que eu fiz anteriormente para que x, y variáveis e bem, tudo bem. Mas Eu estou, aqui eu estou indo para compactá-lo para baixo para fazê-lo em uma linha. Então, eu realmente Só posso dizer, pixel.getX. Portanto pixel é o pixel na imagem do sinal de paragem. E Você só pode chamar getX e você terá o valor de x em quando eu estou sozinho, eu vou colocar aqui dentro. A chamada back.getPixel. Então esta é a idéia mesma de antes mas eu só embalado em uma linha. Tudo bem, então um conjunto de linha dois pixel correspondente no pixel. E então a segunda coisa que devemos fazer o loop é copiado durante esta operação, e que é literalmente a mesma coisa que eu vou simplesmente, que eu copiei aqui de cima. Muito bom. Agora livrar-se de branco. Estas linhas em branco são inofensivos. Ok, então vamos tentar, vamos tentar. Muito bom. Portanto Você pode ver que nós temos, estamos ficando um pouco da folha de dados aqui, mas não um pouco mais fino. Então, precisamos torná-lo um pouco menor. 2,4 é uma pouco mais, quero mais. Completar dois. Só um pouco mais e [som] É muito. [Risos] Certo. Então vamos tentar 1,05. É muito para mim. Bem, eu acho isso é muito bom. Como você pode ver, é uma espécie de, você sabe, não havia setas verdes aqui. Há uma espécie de zona de sombra que tem, é, talvez apenas verde. E então havia alguns cobertores verdes que ordenados a partir daqui pontilhada com essas folhas. É um belo efeito. Ou, é um pouco perturbador, direito, temos recebido estes pixels na imagem do boletim e colocá-los numa espécie de esta outra imagem e aparência, bem, não inteiramente realista. Mas ele podia ver onde, com ajustes, pode obter o efeito real. Ok, então vamos tentar uma como nos filmes. Assim, o medo é a nossa estrela de cinema bonito. E eu tenho de tirar uma foto de macaco frente de um fundo azul. É apenas uma toalha azul. Note-se que o macaco é marrom e tem uma barriguinha aqui e Olá, esta banana é uma espécie de luz amarelo. Então, se você pensar de marrom e castanho e amarelo são todos os tipos de. Por cerca de ¿Amarelo, certo? Portanto, há uma grande quantidade de vermelho / verde, eu costumava fazer. Não muito azul. Ele separa o fundo azul, em termos de pensamento do macaco em termos de RGB, que vai funcionar muito bem. Então aqui é o que eu uso como o Fundo. Este é um candidato para uma das fotos mais famosas já feitas. Este é uma imagem tirada pelos astronautas da Apollo como eram oito, estavam em órbita. Eles estavam voando ao redor da lua, e como eles vieram aqui, em torno da Terra se aproximava. Digite show da terra no horizonte da Lua. [Inaudível] apenas uma linha de vida pouco todos nós somos. Então, o que eu faço é começar com o macaco imagem, e todos esses pixels azuis, quer jogar em pixels da Lua imagem. E assim seria parecido com o macaco é como, em férias na lua. Então, eu vou simplesmente pegar. O código para começar. Vamos ver. Ok, então o que eu faço é, para Sim, quero dizer, se você começa azul. Então, vamos identificar o direito Quer um fundo azul? E se é o fundo azul, e, em seguida, quero jogar em pixels da Lua,. Portanto Aqui, novamente, a nossa imagem é mono Moon [inaudível] Eu tenho a minha declaração se. E Então, isso [inaudível] é invariante, certo? É apenas, obter a correspondente manteve-se inalterada a partir do exemplo anterior. Então é só pegar o correspondente cópia do pixel em vermelho, verde, azul. Sem a necessidade de mudança em tudo. Ok, então vamos tentar. Ok, então, 1,5 o que está acontecendo aqui é se Declaração nunca é acionado. Eu especifiquei que eu fiz a cerca muito alta. Vale a pena vamos tentar 1,3. Ah, só uma caça pequenino. Então, eu estou muito alto. Vamos tentar 1.1. Hey, direito. Agora você pode ver, você sabe, s, azulado desta parte do azul fundo era talvez um pouco mais, por isso estamos recebendo, mas não para baixo aqui. Como deve tentar 1,0. Agora ele está chegando lá. Temos um pouco menos, para que possamos realmente ir ir em um aqui por isso vou tentar 0,9, como o Hurdle onde eu estou um pouco abaixo do obstáculo. Ooh, é muito bom. Ver, há um Lua pouquinho em seu queixo lá. 0,95. Aqui vamos nós, o que é bom bom. Poderíamos, poderíamos definir isso [inaudível], eu acho, três, há uma pouco, aqui vamos nós. Eu acho que é perfeito. Portanto, pode ser visto que tem sabe, como uma estrela de cinema nas batalhas de laser, naves espaciais, o que quer. Muito bom. Apenas para resumir um pouco. No código que você tem duas imagens em vez de um e depois percorrer o caminho principal e só um pouco que já fizemos antes, identificar as áreas de uma cor. E então, depois de ter identificado uma área em a cor está em causa, então existe esta operação para localizar o correspondente pixels da outra imagem e, em seguida, copiar os valores de vermelho, verde, azul, para para obter o efeito. E como você pode imaginar. Você sabe, é muito fácil são exercícios que trabalham com esta técnica.