Return to Video

Bluescreen (12 mins)

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

Portuguese, Brazilian subtitles

Revisions