Jak vytvářet úžasné efekty webové kamery pomocí jazyka Java a zpracování

Jak vytvářet úžasné efekty webové kamery pomocí jazyka Java a zpracování

Zpracování je účinný nástroj, který umožňuje vytváření umění prostřednictvím kódu. Je to kombinace knihovny Java pro práci s grafikou a integrovaného vývojového prostředí (IDE), které vám umožní snadno psát a spouštět kód.





Existuje mnoho grafických a animačních projektů pro začátečníky, které používají zpracování, ale je také schopné manipulovat s živým videem.





Dnes budete pomocí videotéky Processing vytvářet živou videoprezentaci různých efektů ovládaných myší. Kromě překlápění živého videa se naučíte měnit jeho velikost a barvy a jak jej sledovat podle kurzoru myši.





Nastavení projektu

Začít, stahování Zpracování a otevřete prázdnou skicu. Tento tutoriál je založen na systému Windows, ale měl by fungovat na jakémkoli počítači s webovou kamerou.

Možná budete muset nainstalovat knihovnu Processing Video, přístupnou pod Skica> Importovat knihovnu> Přidat knihovnu . Hledat Video do vyhledávacího pole a nainstalujte knihovnu z Zpracovatelská nadace .



Po instalaci jste připraveni jít. Pokud chcete kódování přeskočit, můžete stáhněte si kompletní skicu . Mnohem lepší je to však udělat sami od nuly!

Používání webové kamery se zpracováním

Začněme importem knihovny a vytvořením souboru založit funkce. Do prázdné skici Zpracování zadejte následující:





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

Po importu knihovny videa vytvoříte soubor Zachytit instance volal oranžový k ukládání dat z webové kamery. v založit , velikost funkce nastavuje a 640 x 480 okno velikosti pixelu pro práci.

Další řádek přiřadí oranžový do nové instance Zachytit , pro tento skica, která má stejnou velikost jako okno, než řeknete fotoaparátu, aby se zapnul cam.start () .





Nebojte se, pokud prozatím nerozumíte všem jeho částem. Stručně řečeno, řekli jsme Processingu, aby vytvořil okno, našel naši kameru a zapnul ji! K jeho zobrazení potřebujeme a kreslit funkce. Zadejte to pod kód výše, mimo složené závorky.

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

The kreslit funkce se nazývá každý snímek. To znamená, že mnohokrát za sekundu, -li kamera má data k dispozici vy číst data z něj.

Tato data se poté zobrazí jako obraz , na pozici 0, 0 , což je vlevo nahoře v okně.

Uložte si skicu a stiskněte tlačítko Přehrát v horní části obrazovky.

Úspěch! Data uložená uživatelem oranžový správně se tiskne na obrazovku každý snímek. Pokud máte problémy, důkladně zkontrolujte kód. Java potřebuje každou závorku a středník na správném místě! Zpracování může také vyžadovat několik sekund pro přístup k webové kameře, takže pokud si myslíte, že nefunguje, počkejte několik sekund po spuštění skriptu.

Převrácení obrázku

Nyní, když máte živý obrázek z webové kamery, pojďme s ním manipulovat. Ve funkci kreslení vyměňte obrázek (kamera, 0,0); s těmito dvěma řádky kódu.

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

Uložte a znovu spusťte skicu. Vidíte ten rozdíl? Použitím negativu měřítko hodnota, všechny X hodnoty (horizontální pixely) jsou nyní obráceny. Z tohoto důvodu musíme použít zápornou hodnotu okna šířka pro správné umístění obrázku.

Převrácení obrázku vzhůru nohama vyžaduje jen pár drobných změn.

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

Tentokrát oba X a a hodnoty jsou převráceny a obraz živé kamery je obrácen vzhůru nohama. Doposud jste kódovali normální obrázek, horizontálně převrácený obrázek a svisle převrácený obrázek. Pojďme nastavit způsob, jak mezi nimi cyklovat.

Vytváření cyklu

Namísto přepisování kódu pokaždé můžeme použít čísla k jejich procházení. Vytvoř nový celé číslo v horní části kódu volal přepínač .

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

Pomocí hodnoty přepínače můžeme určit, co se stane s obrazem z kamery. Když skica začne, dáte jí hodnotu 0 . Nyní můžeme pomocí logiky změnit, co se stane s obrázkem. Aktualizujte svůj kreslit způsob, jak vypadat 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;
}
}

Nyní se spustí všechny tři varianty kódu v závislosti na hodnotě přepínače. Pokud neodpovídá jednomu z našich -li nebo když jinak prohlášení, jiný klauzule se resetuje na 0. Logika je důležitá dovednost pro začátečníky, kterou je třeba se naučit, a můžete se o nich a mnohem více dozvědět díky skvělému výukovému programu YouTube!

Pomocí myši

Zpracování má vestavěné metody pro přístup k myši. Chcete -li zjistit, kdy uživatel klikne myší, přidejte stisknuto myší funkce v dolní části skriptu.

jak přesunout programy na jinou jednotku Windows 10
void mousePressed(){
switcher++;
}

Zpracování naslouchá jakýmkoli kliknutím myši a přeruší program, aby provedl tuto metodu, jakmile ji zjistí. Pokaždé, když se metoda zavolá, hodnota přepínače se zvětší o jednu. Uložte a spusťte skript.

Nyní, když stisknete tlačítko myši, prochází různými orientacemi videí, než se vrátí k originálu. Doposud jste video jen překlopili, teď pojďme udělat něco trochu zajímavějšího.

Přidání dalších efektů

Nyní budete kódovat čtyřbarevný efekt živého obrazu podobný slavným uměleckým dílům Andyho Warhola. Přidání dalších efektů je stejně jednoduché jako přidání další klauzule do logiky. Přidejte to do svého skriptu mezi posledními jinak kdyby prohlášení, a jiný .

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žívá obraz funkce pro vytvoření čtyř samostatných snímků z kamery v každém rohu obrazovky a jejich všechny poloviční velikosti.

The nádech funkce přidává barvy každému obrazu z kamery. Čísla, která jsou v závorkách červená, zelená a modrá (RGB) hodnoty. Odstín vybarví všechny následující kódy zvolenou barvou.

Uložte a hrajte, abyste viděli výsledek. Zkuste změnit čísla RGB v každém nádech funkce pro změnu barev!

Postupujte podle myši

Nakonec vytvořme živý obraz podle polohy myši pomocí užitečných funkcí z knihovny Processing. Přidejte toto nad jiný součástí vaší logiky.

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

Zde umístíte obraz z kamery na myšX a hnědý . Jsou integrovány do hodnot zpracování, které vracejí pixel, na který myš ukazuje.

A je to! Pět variací živého videa prostřednictvím kódu. Při spuštění kódu si však všimnete několika problémů.

Dokončení kódu

Kód, který jste dosud vytvořili, funguje, ale všimnete si dvou problémů. Za prvé, jakmile se ukáže čtyřbarevná variace, vše poté je zbarveno do fialova. Za druhé, když přesunete video myší, zanechá to stopu. Můžete to opravit přidáním několika řádků do horní části funkce kreslení.

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

Na začátku každého snímku tento kód resetuje barvu odstínu na bílou a přidá barvu pozadí černé, aby se zabránilo zanechávání stop videa. Nyní, když testujete program, vše funguje perfektně!

Webcame Effects: Art From Code

Zpracování je velmi silné a můžete jej použít k mnoha věcem. Je to vynikající platforma pro vytváření umění s kódem, ale je stejně vhodná pro ovládání robotů!

Pokud Java není vaše věc, existuje knihovna JavaScript založená na zpracování s názvem p5.js. Je založen na prohlížeči a dokonce i začátečníci jej mohou použít k vytváření fantastických reaktivních animací!

Uznání: Syda_Productions / Depositphotos

Podíl Podíl tweet E-mailem 3 způsoby, jak zkontrolovat, zda je e -mail skutečný nebo falešný

Pokud jste obdrželi e -mail, který vypadá trochu pochybně, je vždy nejlepší zkontrolovat jeho pravost. Zde jsou tři způsoby, jak zjistit, zda je e -mail skutečný.

Číst dále
Související témata
  • Programování
  • Jáva
  • Webová kamera
  • zpracovává se
  • Návody na kódování
O autorovi Ian Buckley(216 publikovaných článků)

Ian Buckley je nezávislý novinář, hudebník, performer a video producent žijící v Berlíně v Německu. Když nepíše nebo není na jevišti, pohrává si s elektronikou nebo kódem pro kutily v naději, že se stane šíleným vědcem.

Více od Iana Buckleyho

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru