Kako stvoriti zadivljujuće efekte web kamere pomoću Jave i obrade

Kako stvoriti zadivljujuće efekte web kamere pomoću Jave i obrade

Obrada je moćan alat koji omogućuje stvaranje umjetnosti putem koda. To je kombinacija Java knjižnice za rad s grafikom i integriranog razvojnog okruženja (IDE) koje vam omogućuje jednostavno pisanje i pokretanje koda.





Postoje mnogi projekti za grafiku i animaciju za početnike koji koriste Processing, ali također je sposoban manipulirati video zapisima uživo.





Danas ćete uživo izraditi video slideshow različitih efekata kojima upravlja miš, koristeći videoteku Processing. Osim listanja videozapisa uživo, naučit ćete mu promijeniti veličinu i boju te kako ga natjerati da slijedi pokazivač miša.





Postavljanje projekta

Početi, preuzimanje Obrada i otvorite praznu skicu. Ovaj vodič temelji se na Windows sustavu, ali bi trebao raditi na bilo kojem računalu s web kamerom.

Možda ćete morati instalirati biblioteku Obrada videozapisa, kojoj možete pristupiti pod Skica> Uvezi biblioteku> Dodaj biblioteku . Traziti Video u okviru za pretraživanje i instalirajte biblioteku iz Zaklada za obradu .



Nakon instalacije spremni ste za rad. Ako želite preskočiti kodiranje, možete preuzmite cijelu skicu . Ipak, puno je bolje sami ga napraviti!

Korištenje web kamere s obradom

Počnimo uvozom knjižnice i stvaranjem postaviti funkcija. U praznu skicu obrade unesite sljedeće:





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

Nakon uvoza videoteke stvarate datoteku Uhvatiti nazvana instanca naranča za pohranu podataka s web kamere. U postaviti , veličina funkcija postavlja a 640x480 prozor veličine piksela za rad.

Sljedeći redak dodjeljuje naranča na novu instancu Uhvatiti , za ovaj skicu, iste veličine kao i prozor, prije nego što kažete kameri da se uključi cam.start () .





Ne brinite ako vam za sada nije jasan svaki dio ovoga. Ukratko, Processingu smo rekli da napravi prozor, pronađe našu kameru i uključi je! Za prikaz nam je potreban a crtati funkcija. Unesite ovo ispod gornjeg koda, izvan kovrčavih zagrada.

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

The crtati funkcija se poziva svaki okvir. To znači da mnogo puta svake sekunde, ako kamera ima podatke dostupno vas čitati podatke iz njega.

Ti se podaci tada prikazuju kao slika , na položaju 0, 0 , koji se nalazi u gornjem lijevom kutu prozora.

Spremite skicu i pritisnite gumb za reprodukciju pri vrhu zaslona.

Uspjeh! Podaci pohranjeni od strane naranča ispravno se ispisuje na ekranu svaki okvir. Ako imate problema, temeljito provjerite kôd. Java treba svaku zagradu i točku-zarez na pravom mjestu! Obrada također može zahtijevati nekoliko sekundi za pristup web kameri, pa ako mislite da ne radi, pričekajte nekoliko sekundi nakon pokretanja skripte.

Okretanje slike

Sada kada imate sliku web kamere uživo, manipulirajmo njome. U funkciji izvlačenja zamijenite slika (kamera, 0,0); s ova dva retka koda.

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

Spremite i ponovno izvedite skicu. Vidite li razliku? Korištenjem negativa razmjera vrijednost, sve x vrijednosti (vodoravni pikseli) sada su obrnute. Zbog toga moramo koristiti negativnu vrijednost prozora širina za pravilno postavljanje slike.

Okretanje slike naopako zahtijeva samo nekoliko malih promjena.

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

Ovaj put, oboje x i i vrijednosti se preokreću, okrećući sliku kamere uživo. Do sada ste kodirali normalnu sliku, horizontalno okrenutu sliku i vertikalno okrenutu sliku. Postavimo način da se krećemo između njih.

Učiniti to ciklusom

Umjesto da svaki put prepisujete svoj kôd, možemo ih koristiti za ciklički prelazak. Napravite novu cijeli broj pri vrhu vašeg koda koji se zove prekidač .

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

Vrijednost prekidača možemo upotrijebiti da bismo utvrdili što se događa sa slikom kamere. Kad skica počne, dajete joj vrijednost 0 . Sada možemo koristiti logiku da promijenimo ono što se događa sa slikom. Ažurirajte svoj crtati način da izgleda ovako:

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;
}
}

Sada će se sve tri varijante koda pokrenuti ovisno o vrijednosti prekidača. Ako ne odgovara nekom od naših ako ili ako drukčije izjave, drugo klauzula se poništava na 0. Logika je važna vještina za početnike koju treba naučiti, a o njima i mnogo više možete saznati s izvrsnim YouTube vodičem za programiranje!

Korištenje miša

Obrada ima ugrađene metode za pristup mišu. Da biste otkrili kada korisnik klikne mišem, dodajte mišPritisnut funkciju pri dnu skripte.

kako daljinski hakirati kameru prijenosnog računala
void mousePressed(){
switcher++;
}

Obrada osluškuje sve klikove mišem i prekida program u izvođenju ove metode kad ga otkrije. Svaki put kada se metoda pozove, vrijednost prekidača postaje veća za jedan. Spremite i pokrenite skriptu.

Sada, kada pritisnete tipku miša, ona se kreće kroz različite orijentacije videozapisa, prije nego se vrati na izvornik. Do sada ste upravo okrenuli video, a sada učinimo nešto malo zanimljivije.

Dodavanje više efekata

Sada ćete kodirati efekt žive slike u četiri boje sličan poznatim umjetninama Andyja Warhola. Dodavanje više učinaka jednostavno je kao i dodavanje druge klauzule u logiku. Dodajte ovo u svoju skriptu između posljednjih inače ako izjava, i drugo .

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);
}

Ovaj kôd koristi slika funkcija za stvaranje četiri zasebne slike kamere u svakom kutu zaslona i za sve njihove polovične veličine.

The nijansirati funkcija dodaje boju svakoj slici fotoaparata. Brojevi u zagradama su crvena, zelena i plava (RGB) vrijednosti. Nijansirajte sav sljedeći kod odabranom bojom.

Spremite i igrajte da vidite rezultat. Pokušajte promijeniti RGB brojeve u svakom nijansirati funkcija za promjenu boja!

Kako slijediti miša

Na kraju, učinimo da živa slika slijedi položaj miša pomoću korisnih funkcija iz knjižnice Processing. Dodajte ovo iznad drugo dio tvoje logike.

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

Ovdje postavljate sliku s fotoaparata na mouseX i plašljiv . To su ugrađene vrijednosti obrade koje vraćaju piksel na koji miš pokazuje.

To je to! Pet varijacija video zapisa uživo putem koda. Međutim, kada pokrenete kôd, primijetit ćete nekoliko problema.

Dovršavanje koda

Kôd koji ste dosad stvorili funkcionira, ali primijetit ćete dva problema. Prvo, kad se pokaže varijacija u četiri boje, sve je poslije obojeno u ljubičasto. Drugo, kad pomičete videozapis mišem, ostavlja trag. To možete popraviti dodavanjem nekoliko redaka na vrh funkcije iscrtavanja.

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

Na početku svakog kadra ovaj kôd poništava boju nijanse na bijelu i dodaje crnu boju pozadine kako bi zaustavio video ostavljanje tragova. Sada kada isprobate program, sve radi savršeno!

Učinci web kamere: Umjetnost iz koda

Obrada je vrlo moćna i možete je koristiti za mnoge stvari. To je izvrsna platforma za stvaranje umjetnosti s kodom, ali jednako je pogodna za upravljanje robotima!

Ako Java nije vaša stvar, postoji JavaScript biblioteka zasnovana na obradi koja se naziva p5.js. Temelji se na pregledniku, pa čak ga i početnici mogu koristiti za stvaranje fantastičnih reaktivnih animacija!

Kredit za sliku: Syda_Productions / Depositphotos

Udio Udio Cvrkut E -pošta 3 načina da provjerite je li e -pošta prava ili lažna

Ako ste primili e -poruku koja izgleda pomalo sumnjivo, uvijek je najbolje provjeriti njenu autentičnost. Evo tri načina da provjerite je li e -poruka prava.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Java
  • Web kamera
  • Obrada
  • Vodiči za kodiranje
O autoru Ian Buckley(216 objavljenih članaka)

Ian Buckley je slobodni novinar, glazbenik, izvođač i video producent koji živi u Berlinu, Njemačka. Kad ne piše ili je na pozornici, petlja s DIY elektronikom ili kodom u nadi da će postati ludi znanstvenik.

Više od Iana Buckleyja

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu