Csodálatos webkamera -effektusok létrehozása Java és feldolgozás használatával

Csodálatos webkamera -effektusok létrehozása Java és feldolgozás használatával

A feldolgozás egy hatékony eszköz, amely lehetővé teszi a művészet létrehozását kódon keresztül. Ez a grafikus munkához szükséges Java könyvtár és az integrált fejlesztői környezet (IDE) kombinációja, amely lehetővé teszi a kódok egyszerű írását és futtatását.





Sok grafikus és animációs kezdő projekt létezik, amelyek feldolgozást használnak, de képes élő videó manipulálására is.





Ma élő videó diavetítést készít az egér által vezérelt különböző effektekről, a Processing videótár használatával. Az élő videó felforgatása mellett megtanulja átméretezni és színezni, valamint azt, hogyan kell követni az egérmutatót.





Projekt beállítása

Kezdeni, letöltés Feldolgozás és nyisson meg egy üres vázlatot. Ez az oktatóanyag Windows rendszeren alapul, de minden webkamerás számítógépen működnie kell.

Lehet, hogy telepítenie kell a Processing Video könyvtárat Vázlat> Könyvtár importálása> Könyvtár hozzáadása . Keress rá Videó a keresőmezőbe, és telepítse a könyvtárat a A Feldolgozó Alapítvány .



A telepítés után készen áll az indulásra. Ha ki akarja hagyni a kódolást, megteheti töltse le a teljes vázlatot . Sokkal jobb azonban, ha a nulláról készíted el magad!

Webkamera használata feldolgozással

Kezdjük a könyvtár importálásával és a beállít funkció. Írja be a következőket az üres feldolgozási vázlatba:





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

A videotár importálása után létrehozza a Elfog példány hívott narancssárga tárolja az adatokat a webkameráról. Ban ben beállít , az méret függvény beállítja a 640x480 pixel méretű ablakban dolgozni.

A következő sor hozzárendeli narancssárga új példányára Elfog , számára ez vázlatot, amely akkora, mint az ablak, mielőtt azt mondja a kamerának, hogy kapcsolja be cam.start () .





Ne aggódjon, ha egyelőre nem érti ennek minden részét. Röviden, azt mondtuk a Processing -nek, hogy készítsen ablakot, keresse meg a kameránkat, és kapcsolja be! Megjelenítéséhez szükségünk van a húz funkció. Írja be ezt a fenti kód alá, a göndör zárójeleken kívül.

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

Az húz függvény minden keretben meghívásra kerül. Ez azt jelenti, hogy másodpercenként többször, ha a kamera rendelkezik adatokkal elérhető te olvas az adatokat belőle.

Ezeket az adatokat ezután a kép , a pozícióban 0, 0 , amely az ablak bal felső sarkában található.

Mentse el a vázlatot, majd nyomja meg a képernyő tetején lévő lejátszás gombot.

Siker! Az által tárolt adatok narancssárga helyesen kerül nyomtatásra a képernyőre minden keretben. Ha problémái vannak, alaposan ellenőrizze a kódot. A Java-nak szüksége van minden zárójelre és pontosvesszőre a megfelelő helyen! A feldolgozás néhány másodpercet is igénybe vehet a webkamera eléréséhez, ezért ha úgy gondolja, hogy nem működik, várjon néhány másodpercet a szkript elindítása után.

A kép felforgatása

Most, hogy élő webkamerás képe van, manipuláljuk. A húzás funkcióban cserélje ki kép (bütyök, 0,0); ezzel a két kódsorral.

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

Mentse el és futtassa újra a vázlatot. Látod a különbséget? Negatívum használatával skála érték, az összes x az értékek (a vízszintes képpontok) most megfordulnak. Emiatt az ablak negatív értékét kell használnunk szélesség a kép helyes elhelyezéséhez.

A kép fejjel lefelé fordítása csak néhány apró változtatást igényel.

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

Ezúttal mind a x és és az értékek megfordulnak, és az élő kamera képét fejjel lefelé fordítják. Eddig normál képet, vízszintesen elfordított képet és függőlegesen elfordított képet kódolt. Állítsunk be egy módot arra, hogy közöttük kerékpározzunk.

Ciklus készítése

Ahelyett, hogy minden alkalommal újraírnánk a kódot, számokat használhatunk a ciklushoz. Újat csinálni egész szám nevű kódjának tetején kapcsoló .

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

A kapcsoló értékével meghatározhatjuk, hogy mi történik a kamera képével. Amikor a vázlat elkezdődik, a következő értéket adja meg 0 . Most a logika segítségével megváltoztathatjuk, mi történik a képpel. Frissítse a húz módszer így nézzen ki:

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

Most a kód mindhárom változata aktiválódik a kapcsoló értékétől függően. Ha nem felel meg valamelyikünknek ha vagy ha más nyilatkozatok, a más A záradék visszaáll nullára. A logika egy kezdő fontos készség, amelyet megtanulhat, és ezekről és még sok másról megtudhat egy kiváló YouTube programozási oktatóanyaggal!

Az egér használata

A feldolgozás beépített módszerekkel rendelkezik az egér eléréséhez. Annak észleléséhez, hogy a felhasználó mikor kattint az egérre, adja hozzá a egér Nyomva funkciót a szkript alján.

hogyan lehet megtudni az alaplap modelljét
void mousePressed(){
switcher++;
}

A feldolgozás hallgat minden egérkattintásra, és megszakítja a programot, hogy végrehajtsa ezt a módszert, ha észleli. Minden alkalommal, amikor a módszert meghívják, a kapcsoló értéke eggyel nagyobb lesz. Mentse el és futtassa a szkriptet.

Most, amikor megnyomja az egérgombot, a videók különböző tájolásait tekeri át, mielőtt visszatér az eredetihez. Eddig csak felfordította a videót, most tegyünk valami érdekesebbet.

További effektusok hozzáadása

Most négy színű élőkép effektust kódol, hasonlóan a híres Andy Warhol műalkotásokhoz. További effektusok hozzáadása olyan egyszerű, mint egy másik záradék hozzáadása a logikához. Add hozzá a szkripthez az utolsó között különben ha nyilatkozat, és más .

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

Ez a kód a kép funkcióval négy különálló kamera képet hozhat létre a képernyő minden sarkában, és mindegyiket félméretűvé teheti.

Az színez funkció színesíti a fényképezőgép minden képét. A zárójelben lévő számok piros, zöld és kék (RGB) értékeket. Színezze a következő kódot a kiválasztott színnel.

Mentse el és játssza le az eredményt. Próbálja meg megváltoztatni mindegyik RGB számát színez funkció a színek megváltoztatásához!

Az egér követése

Végül tegyük az élőképet az egér pozíciójának követésére a Processing könyvtár hasznos funkcióival. Ezt add hozzá a fentihez más a logikád része.

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

Itt helyezi el a fényképezőgépről származó képet a címen egérX és egérY . Ezek beépített feldolgozási értékek, amelyek azt a képpontot adják vissza, amelyre az egér mutat.

Ez az! Az élő videó öt változata a kódon keresztül. A kód futtatásakor azonban néhány problémát észlel.

A kód befejezése

Az eddig létrehozott kód működik, de két problémát észlel. Először is, amint megjelenik a négy színváltozat, utána minden lila színű lesz. Másodszor, ha a videót az egérrel mozgatja, nyomot hagy. Kijavíthatja, ha hozzáad egy pár sort a húzófunkció tetejéhez.

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

Minden képkocka elején ez a kód visszaállítja a színárnyalatot fehérre, és fekete háttérszínt ad a videó elhagyásához. Most, amikor teszteli a programot, minden tökéletesen működik!

Webkamerás effektek: Art From Code

A feldolgozás nagyon hatékony, és sok mindenre használhatja. Kiváló platform kódkészítéshez, de alkalmas robotok vezérlésére is!

Ha a Java nem az Ön dolga, akkor van egy JavaScript -könyvtár, amely feldolgozáson alapul, a p5.js. Ez böngészőalapú, és még kezdők is használhatják fantasztikus reaktív animációk készítéséhez!

Kép jóváírása: Syda_Productions / Depositphotos

Részvény Részvény Csipog Email 3 módszer annak ellenőrzésére, hogy az e -mail valódi vagy hamis

Ha olyan e -mailt kapott, amely kissé kétesnek tűnik, mindig a legjobb ellenőrizni annak hitelességét. Íme három módszer annak megállapítására, hogy egy e -mail valódi -e.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Jáva
  • Webkamera
  • Feldolgozás
  • Kódolási oktatóanyagok
A szerzőről Ian Buckley(216 megjelent cikk)

Ian Buckley szabadúszó újságíró, zenész, előadó és videó producer, Berlinben, Németországban él. Amikor éppen nem ír vagy a színpadon, barkácsol elektronikával vagy kóddal, abban a reményben, hogy őrült tudós lesz.

Bővebben: Ian Buckley

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide