Kuinka luoda hämmästyttäviä verkkokameratehosteita Javan ja prosessoinnin avulla

Kuinka luoda hämmästyttäviä verkkokameratehosteita Javan ja prosessoinnin avulla

Käsittely on tehokas työkalu, joka mahdollistaa taiteen luomisen koodin avulla. Se on yhdistelmä Java -kirjastoa grafiikan kanssa työskentelyyn ja integroitua kehitysympäristöä (IDE), jonka avulla voit kirjoittaa ja ajaa koodia helposti.





On monia grafiikkaa ja animaatioita aloittavia projekteja, jotka käyttävät käsittelyä, mutta se pystyy myös manipuloimaan live -videota.





Tänään teet suoria videoesityksiä eri tehosteista, joita ohjataan hiirellä Processing -videokirjaston avulla. Suoran videon kääntämisen lisäksi opit muuttamaan ja värittämään sen kokoa ja tekemään siitä hiiren kohdistimen mukaisen.





Projektin asennus

Aloittaa, lataa Käsittely ja avaa tyhjä luonnos. Tämä opetusohjelma perustuu Windows -järjestelmään, mutta sen pitäisi toimia millä tahansa tietokoneella, jossa on verkkokamera.

Sinun on ehkä asennettava Processing Video -kirjasto, jonka löydät alta Luonnos> Tuo kirjasto> Lisää kirjasto . Etsiä Video hakukenttään ja asenna kirjasto Processing Foundation .



Kun olet asentanut, olet valmis menemään. Jos haluat ohittaa koodauksen, voit lataa koko luonnos . On kuitenkin paljon parempi tehdä se itse tyhjästä!

Verkkokameran käyttö käsittelyn kanssa

Aloitetaan tuomalla kirjasto ja luomalla perustaa toiminto. Kirjoita seuraava tyhjään käsittelyluonnokseen:





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

Videokirjaston tuonnin jälkeen luot Kaapata instanssi nimeltään Oranssi tallentaaksesi tiedot verkkokamerasta. Sisään perustaa , koko toiminto a 640x480 pikselin kokoinen ikkuna työskentelyyn.

Seuraava rivi määrittää Oranssi uuteen tapaukseen Kaapata , varten Tämä luonnos, joka on samankokoinen kuin ikkuna, ennen kuin kehotat kameraa käynnistymään cam.start () .





Älä huolestu, jos et ymmärrä kaikkia tämän hetken asioita. Lyhyesti sanottuna olemme kehottaneet Processingia tekemään ikkunan, etsimään kameran ja kytkemään sen päälle! Sen näyttämiseksi tarvitsemme a piirtää toiminto. Kirjoita tämä yllä olevan koodin alle, kiharoiden ulkopuolelle.

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

The piirtää toimintoa kutsutaan joka kehyksessä. Tämä tarkoittaa, että monta kertaa sekunnissa, jos kamerassa on dataa saatavilla sinä lukea siitä saadut tiedot.

Nämä tiedot näytetään sitten muodossa kuva , asemassa 0, 0 , joka on ikkunan vasemmassa yläkulmassa.

Tallenna luonnos ja paina näytön yläreunassa olevaa toistopainiketta.

Menestys! Tallentamat tiedot Oranssi tulostetaan oikein ruudulle joka kehyksessä. Jos sinulla on ongelmia, tarkista koodi huolellisesti. Java tarvitsee jokaisen hakasulkeen ja puolipisteen oikeassa paikassa! Käsittely voi myös kestää muutaman sekunnin päästäkseen verkkokameraan, joten jos luulet, että se ei toimi, odota muutama sekunti komentosarjan käynnistämisen jälkeen.

Kuvan kääntäminen

Nyt kun sinulla on live -web -kuva, manipuloidaan sitä. Vaihda piirtotoiminnossa kuva (nokka, 0,0); näiden kahden koodirivin kanssa.

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

Tallenna ja suorita luonnos uudelleen. Näetkö eron? Käyttämällä negatiivia asteikko arvo, kaikki x arvot (vaakapikselit) on nyt käänteinen. Tästä syystä meidän on käytettävä ikkunan negatiivista arvoa leveys kuvan asettamiseksi oikein.

Kuvan kääntäminen ylösalaisin vaatii vain pari pientä muutosta.

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

Tällä kertaa molemmat x ja ja arvot käännetään ja kamera kääntyy ylösalaisin. Tähän mennessä olet koodannut normaalin kuvan, vaakasuunnassa käännetyn kuvan ja pystysuunnassa käännetyn kuvan. Luodaan tapa kiertää niiden välillä.

Kiertäminen

Sen sijaan, että kirjoittaisimme koodisi uudelleen joka kerta, voimme käyttää numeroita niiden selaamiseen. Luoda uusi kokonaisluku koodisi yläreunassa kytkin .

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

Voimme käyttää kytkimen arvoa määrittääksemme, mitä kameran kuvalle tapahtuu. Kun luonnos alkaa, annat sille arvon 0 . Nyt voimme käyttää logiikkaa muuttaaksemme, mitä kuvalle tapahtuu. Päivitä piirtää tapa näyttää tältä:

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

Nyt kaikki kolme koodivaihtoehtoa käynnistyvät kytkimen arvon mukaan. Jos se ei vastaa yhtä meidän jos tai tai muuten lausunnot, muu Lauseke palautetaan arvoon 0. Logiikka on tärkeä aloittelijan taito oppia, ja voit oppia niistä ja paljon muuta erinomaisesta YouTube -ohjelmointioppaasta!

Hiiren käyttäminen

Käsittelyssä on sisäänrakennetut menetelmät hiiren käyttämiseksi. Jos haluat havaita, milloin käyttäjä napsauttaa hiirtä, lisää hiiriPainettu -toimintoa komentosarjan alareunassa.

mainokset avautuvat Android -aloitusnäytölle
void mousePressed(){
switcher++;
}

Käsittely kuuntelee hiiren napsautuksia ja keskeyttää ohjelman suorittamaan tämän menetelmän, kun se havaitsee sen. Joka kerta, kun menetelmä kutsutaan, vaihtajan arvo kasvaa yksi kerrallaan. Tallenna ja suorita skriptisi.

Kun painat hiiren painiketta, se selaa videoiden eri suuntauksia ennen kuin palaa alkuperäiseen. Toistaiseksi olet vain kääntänyt videon, nyt tehdään jotain hieman mielenkiintoisempaa.

Lisää tehosteita

Nyt voit koodata nelivärisen elävän kuvan vaikutuksen, joka on samanlainen kuin kuuluisat Andy Warholin taideteokset. Lisää tehosteita on yhtä yksinkertaista kuin uuden lausekkeen lisääminen logiikkaan. Lisää tämä skriptiisi viimeisen välillä muuten jos lausunto, ja muu .

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

Tämä koodi käyttää kuva -toiminnon avulla voit luoda neljä erillistä kamerakuvaa kuhunkin näytön kulmaan ja tehdä niistä kaikki puolikokoisia.

The sävy toiminto lisää väriä jokaiseen kameran kuvaan. Numerot suluissa ovat punainen, vihreä ja sininen (RGB) arvot. Sävytä kaikki seuraavat koodit valitulla värillä.

Tallenna ja pelaa nähdäksesi tulos. Kokeile muuttaa kunkin RGB -numeroa sävy toiminto värien vaihtamiseksi!

Saada se seuraamaan hiirtä

Lopuksi, asetetaan live -kuva seuraamaan hiiren asentoa Processing -kirjaston hyödyllisten toimintojen avulla. Lisää tämä yläpuolelle muu osa logiikkaasi.

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

Tässä asetat kameran kuvan osoitteeseen hiiriX ja hiirimäinen . Nämä ovat sisäänrakennettuja käsittelyarvoja, jotka palauttavat hiiren osoittaman pikselin.

Se siitä! Viisi muunnelmaa livevideosta koodin kautta. Kuitenkin, kun suoritat koodin, huomaat pari ongelmaa.

Koodin viimeistely

Tähän mennessä luomasi koodi toimii, mutta huomaat kaksi ongelmaa. Ensinnäkin, kun neljän värin vaihtelu näkyy, kaikki jälkeenpäin on sävytetty violetiksi. Toiseksi, kun siirrät videota hiirellä, se jättää jäljen. Voit korjata sen lisäämällä pari riviä piirtotoiminnon yläosaan.

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

Jokaisen kehyksen alussa tämä koodi palauttaa sävyn värin valkoiseksi ja lisää mustan taustavärin, joka estää videon poistumisen jälkeistä. Nyt kun testaat ohjelmaa, kaikki toimii täydellisesti!

Verkkokameratehosteet: Art From Code

Käsittely on erittäin tehokasta, ja voit käyttää sitä moniin asioihin. Se on erinomainen alusta taiteen tekemiseen koodilla, mutta se soveltuu yhtä hyvin robottien ohjaamiseen!

Jos Java ei ole sinun juttusi, prosessointiin perustuva JavaScript -kirjasto on nimeltään p5.js. Se on selainpohjainen, ja jopa aloittelijat voivat käyttää sitä luomaan fantastisia reaktiivisia animaatioita!

Kuvahaku: Syda_Productions / Depositphotos

Jaa Jaa Tweet Sähköposti 3 tapaa tarkistaa, onko sähköposti oikea tai väärennetty

Jos olet saanut sähköpostin, joka näyttää hieman epäilyttävältä, on aina parasta tarkistaa sen aitous. Tässä on kolme tapaa kertoa, onko sähköposti oikea.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Java
  • Verkkokamera
  • Käsittely
  • Koodausoppaat
Kirjailijasta Ian Buckley(216 artikkelia julkaistu)

Ian Buckley on freelance -toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei kirjoita tai ei ole lavalla, hän hieroo DIY -elektroniikkaa tai koodia toivossa tulla hulluksi tiedemieheksi.

Lisää Ian Buckleyltä

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi