Ako vytvárať úžasné efekty webovej kamery pomocou jazyka Java a spracovania

Ako vytvárať úžasné efekty webovej kamery pomocou jazyka Java a spracovania

Processing je účinný nástroj, ktorý umožňuje vytváranie umenia prostredníctvom kódu. Je to kombinácia knižnice Java na prácu s grafikou a integrovaného vývojového prostredia (IDE), ktoré vám umožňuje ľahko písať a spúšťať kód.





Existuje mnoho grafických a animačných projektov pre začiatočníkov, ktoré používajú spracovanie, ale je tiež schopné manipulovať so živým videom.





Dnes budete pomocou videotéky Processing vytvárať živú video prezentáciu rôznych efektov ovládaných myšou. Okrem otáčania živého videa sa naučíte meniť jeho veľkosť a farby a ako ho prinútiť sledovať kurzor myši.





Nastavenie projektu

Začať, sťahovanie Spracovanie a otvorte prázdny náčrt. Tento návod je založený na systéme Windows, ale mal by fungovať na akomkoľvek počítači s webovou kamerou.

Možno budete musieť nainštalovať knižnicu Processing Video, prístupnú pod Skica> Importovať knižnicu> Pridať knižnicu . Hľadať Video do vyhľadávacieho poľa a nainštalujte knižnicu z Nadácia Processing Foundation .



Po inštalácii ste pripravení ísť. Ak chcete kódovanie preskočiť, môžete stiahnuť kompletný náčrt . Je však oveľa lepšie to urobiť sami od začiatku!

Používanie webovej kamery so spracovaním

Začnime importovaním knižnice a vytvorením súboru nastaviť funkciu. Do prázdneho náčrtu spracovania zadajte nasledujúce:





import processing.video.*;
Capture cam;
void setup(){
size(640,480);
cam = new Capture(this, 640, 480);
cam.start();
}

Po importe videoknižnice vytvoríte súbor Zachytiť inštancia volala Oranžová na ukladanie údajov z webovej kamery. V nastaviť , veľkosť funkcia nastavuje a 640 x 480 okno s veľkosťou pixelov, v ktorom chcete pracovať.

Ďalší riadok priraďuje Oranžová na nový prípad Zachytiť , pre toto skicu, ktorá má rovnakú veľkosť ako okno, a potom oznámte fotoaparátu, aby sa zapol cam.start () .





Ak zatiaľ nerozumiete všetkým týmto častiam, nie je dôvod sa znepokojovať. Stručne povedané, povedali sme Processing, aby urobil okno, našiel náš fotoaparát a zapol ho! Na jeho zobrazenie potrebujeme a kresliť funkciu. Zadajte to pod kód vyššie, mimo zložených zátvoriek.

void draw(){
if (cam.available()){
cam.read();
}
image(cam,0,0);
}

The kresliť funkcia sa nazýva každý rámec. To znamená, že mnohokrát za sekundu, keby kamera má údaje k dispozícii ty čítať údaje z neho.

Tieto údaje sa potom zobrazia ako obrázok , na pozícii 0, 0 , ktorá je vľavo hore v okne.

Uložte si skicu a stlačte tlačidlo prehrávania v hornej časti obrazovky.

Úspech! Údaje uložené Oranžová sa na obrazovku správne tlačí každý rámček. Ak máte problémy, poriadne si skontrolujte kód. Java potrebuje každú zátvorku a bodkočiarku na správnom mieste! Spracovanie môže tiež trvať niekoľko sekúnd, kým sa dostanete k webovej kamere, takže ak si myslíte, že nefunguje, počkajte niekoľko sekúnd po spustení skriptu.

Prevrátenie obrázku

Teraz, keď máte živý obrázok z webovej kamery, poďme s ním manipulovať. Vo funkcii kreslenia vymeňte obrázok (kamera, 0,0); s týmito dvoma riadkami kódu.

scale(-1,1);
image(cam,-width,0);

Uložte a znova spustite skicu. Vidíte ten rozdiel? Použitím negatívu mierka hodnota, všetko X hodnoty (horizontálne pixely) sú teraz obrátené. Z tohto dôvodu musíme použiť zápornú hodnotu okna šírka na správne umiestnenie obrazu.

Prevrátenie obrázku hore nohami vyžaduje iba niekoľko malých zmien.

scale(-1,-1);
image(cam,-width,-height);

Tentoraz obaja X a a hodnoty sa prevrátia a obraz živej kamery sa obráti naruby. Doteraz ste kódovali normálny obrázok, horizontálne preklopený obrázok a vertikálne prevrátený obrázok. Vytvorme spôsob, ako medzi nimi cyklovať.

Tvorba cyklu

Namiesto toho, aby sme váš kód prepisovali zakaždým, môžeme na ich prechádzanie použiť čísla. Vytvorte nový celé číslo v hornej časti kódu s názvom prepínač .

import processing.video.*;
int switcher = 0;
Capture cam;

Hodnotu prepínača môžeme použiť na určenie toho, čo sa stane s obrazom z kamery. Keď sa skica spustí, dáte jej hodnotu 0 . Teraz môžeme pomocou logiky zmeniť, čo sa stane s obrázkom. Aktualizujte svoj kresliť spôsob, ako vyzerať takto:

void draw(){
if (cam.available()){
cam.read();
}
if(switcher==0){
image(cam,0,0);
}
else if(switcher == 1){
scale(-1,1);
image(cam,-width,0);
}
else if(switcher == 2){
scale(-1,-1);
image(cam,-width,-height);
}
else{
println('Switcher = 0 again');
switcher = 0;
}
}

Teraz sa spustia všetky tri variácie kódu v závislosti od hodnoty prepínača. Ak sa nezhoduje s jedným z našich keby alebo keď inak vyhlásenia, inak doložka sa resetuje na 0. Logika je dôležitou zručnosťou pre začiatočníkov, ktorú je potrebné naučiť sa. Môžete sa o nich a oveľa viac dozvedieť pomocou vynikajúceho návodu na programovanie na YouTube!

Používanie myši

Spracovanie má vstavané metódy prístupu k myši. Ak chcete zistiť, či používateľ klikne myšou, pridajte stlačené myšou funkciu v spodnej časti skriptu.

ako čítať disk Mac v systéme Windows
void mousePressed(){
switcher++;
}

Proces spracovania počúva akékoľvek kliknutia myši a preruší program, aby vykonal túto metódu, keď ju zistí. Zakaždým, keď sa metóda zavolá, hodnota prepínača sa zvýši o jednu. Uložte a spustite skript.

Teraz, keď stlačíte tlačidlo myši, prejde rôznymi smermi videa a potom sa vráti k pôvodnému stavu. Doteraz ste video iba preklopili, teraz urobme niečo trochu zaujímavejšie.

Pridanie ďalších efektov

Teraz budete kódovať štvorfarebný efekt živého obrazu podobný slávnym umeleckým dielam Andyho Warhola. Pridanie ďalších efektov je také jednoduché ako pridanie ďalšej klauzuly do logiky. Pridajte to do svojho skriptu medzi poslednými ináč Ak vyhlásenie, a inak .

else if(switcher == 3){
tint(256, 0, 0);
image(cam, 0, 0, width/2, height/2);
tint(0, 256, 0);
image(cam, width/2, 0, width/2, height/2);
tint(0, 0, 256);
image(cam, 0, height/2, width/2, height/2);
tint(256, 0, 256);
image(cam, width/2, height/2, width/2, height/2);
}

Tento kód používa príponu obrázok funkcia na vytvorenie štyroch samostatných snímok z kamery v každom rohu obrazovky a ich všetky polovičnej veľkosti.

The odtieň funkcia dodáva každému obrázku z kamery farbu. Čísla, ktoré sú v zátvorkách červená, zelená a modrá (RGB) hodnoty. Odtieň zafarbí všetok nasledujúci kód zvolenou farbou.

Uložte a hrajte, aby ste videli výsledok. Skúste zmeniť čísla RGB v každom z nich odtieň funkcia na zmenu farieb!

Vykonajte to podľa myši

Nakoniec nechajme živý obraz sledovať polohu myši pomocou užitočných funkcií z knižnice spracovania. Pridajte to nad inak súčasť tvojej logiky.

else if(switcher==4 ){
image(cam, mouseX, mouseY, width/2, height/2);
}

Tu umiestnite obrázok z fotoaparátu na myšX a myšY . Sú to vstavané hodnoty spracovania, ktoré vracajú, na ktorý pixel myš ukazuje.

To je všetko! Päť variácií živého videa prostredníctvom kódu. Pri spustení kódu si však všimnete niekoľko problémov.

Dokončenie kódu

Kód, ktorý ste doteraz vytvorili, funguje, ale všimnete si dva problémy. Po prvé, akonáhle sa ukáže štvorfarebná variácia, všetko potom je zafarbené na purpurovo. Za druhé, keď s videom pohnete myšou, zanechá po sebe stopu. Môžete to opraviť pridaním niekoľkých riadkov do hornej časti funkcie kreslenia.

void draw(){
tint(256,256,256);
background(0);
//draw function continues normally here!

Na začiatku každého rámca tento kód vynuluje farbu odtieňa na bielu a pridá čiernu farbu pozadia, aby sa zastavili stopy videa. Teraz, keď testujete program, všetko funguje perfektne!

Webcame Effects: Art From Code

Spracovanie je veľmi silné a môžete ho použiť na mnoho vecí. Je to vynikajúca platforma na vytváranie umenia pomocou kódu, ale je rovnako vhodná na ovládanie robotov!

Ak vám nie je Java blízka, existuje knižnica JavaScript založená na spracovaní s názvom p5.js. Je založený na prehliadači a dokonca aj začiatočníci ho môžu použiť na vytváranie fantastických reaktívnych animácií!

Kredit na obrázok: Syda_Productions / Depositphotos

zdieľam zdieľam Tweet E -mail 3 spôsoby, ako skontrolovať, či je e -mail skutočný alebo falošný

Ak ste dostali e -mail, ktorý vyzerá trochu pochybne, je vždy najlepšie skontrolovať jeho pravosť. Toto sú tri spôsoby, ako zistiť, či je e -mail skutočný.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Java
  • Webkamera
  • Spracovanie
  • Návody na kódovanie
O autorovi Ian Buckley(216 publikovaných článkov)

Ian Buckley je nezávislý novinár, hudobník, performer a producent videa žijúci v Berlíne v Nemecku. Keď práve nepíše alebo je na pódiu, pohráva si s elektronikou alebo kódom pre domácich majstrov v nádeji, že sa stane šialeným vedcom.

Viac od Iana Buckleyho

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber