-
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.