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.