Kā izveidot pārsteidzošus tīmekļa kameru efektus, izmantojot Java un apstrādi

Kā izveidot pārsteidzošus tīmekļa kameru efektus, izmantojot Java un apstrādi

Apstrāde ir spēcīgs rīks, kas ļauj radīt mākslu, izmantojot kodu. Tā ir Java bibliotēkas kombinācija darbam ar grafiku un integrēta izstrādes vide (IDE), kas ļauj viegli rakstīt un palaist kodu.





Ir daudz grafikas un animācijas iesācēju projektu, kas izmanto apstrādi, taču tas spēj arī manipulēt ar tiešraides video.





Šodien jūs veidosit tiešraides video slaidrādi ar dažādiem efektiem, kurus kontrolē pele, izmantojot apstrādes video bibliotēku. Jūs varat pagriezt tiešraides video, kā arī mainīt tā izmērus un iekrāsot to, kā arī panākt, lai tas seko peles kursoram.





Projekta iestatīšana

Sākt, lejupielādēt Apstrāde un atveriet tukšu skici. Šī apmācība ir balstīta uz Windows sistēmu, taču tai vajadzētu darboties jebkurā datorā ar tīmekļa kameru.

Jums, iespējams, būs jāinstalē apstrādes video bibliotēka, kas pieejama sadaļā Skice> Importēt bibliotēku> Pievienot bibliotēku . Meklēt Video meklēšanas lodziņā un instalējiet bibliotēku no Apstrādes fonds .



Kad esat to instalējis, esat gatavs darbam. Ja vēlaties izlaist kodēšanu, varat lejupielādējiet pilnu skici . Tomēr ir daudz labāk to pagatavot pats no nulles!

Tīmekļa kameras izmantošana ar apstrādi

Sāksim ar bibliotēkas importēšanu un a uzstādīt funkciju. Tukšajā apstrādes skicē ievadiet:





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

Pēc video bibliotēkas importēšanas jūs izveidojat Uzņemt izsaukta instance apelsīns lai saglabātu datus no tīmekļa kameras. In uzstādīt , Izmērs funkcija uzstāda a 640x480 pikseļu izmēra logs darbam.

Nākamā rinda piešķir apelsīns uz jaunu gadījumu Uzņemt , priekš šo skici, kas ir tāda paša izmēra kā logs, pirms pastāstīt kamerai, lai tā ieslēdzas cam.start () .





Neuztraucieties, ja pagaidām nesaprotat katru šīs daļas daļu. Īsāk sakot, mēs esam teikuši apstrādei izveidot logu, atrast savu kameru un to ieslēgt! Lai to parādītu, mums ir nepieciešams izdarīt funkciju. Ievadiet to zem koda iepriekš, ārpus cirtainām iekavām.

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

The izdarīt funkcija tiek izsaukta katrā kadrā. Tas nozīmē, ka daudzas reizes katru sekundi, ja kamerai ir dati pieejams jūs lasīt datus no tā.

Pēc tam šie dati tiek parādīti kā attēlu , pozīcijā 0, 0 , kas ir loga augšējā kreisajā stūrī.

Saglabājiet skici un nospiediet atskaņošanas pogu ekrāna augšdaļā.

Veiksmi! Dati, ko glabā apelsīns tiek pareizi drukāts uz ekrāna katru kadru. Ja rodas problēmas, rūpīgi pārbaudiet savu kodu. Java nepieciešama katra iekava un semikols pareizajā vietā! Apstrāde var prasīt arī dažas sekundes, lai piekļūtu tīmekļa kamerai, tādēļ, ja domājat, ka tā nedarbojas, pagaidiet dažas sekundes pēc skripta palaišanas.

Attēla pagriešana

Tagad, kad jums ir tiešraides tīmekļa kameras attēls, manipulēsim ar to. Zīmēšanas funkcijā nomainiet attēls (izciļņi, 0,0); ar šīm divām koda rindām.

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

Saglabājiet un atkārtojiet skici. Vai redzat atšķirību? Izmantojot negatīvu mērogā vērtība, visas x vērtības (horizontālie pikseļi) tagad ir apgrieztas. Šī iemesla dēļ mums jāizmanto loga negatīvā vērtība platums lai pareizi novietotu attēlu.

Lai apgrieztu attēlu otrādi, ir nepieciešamas tikai dažas nelielas izmaiņas.

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

Šoreiz gan x un un vērtības tiek apgrieztas, apgriežot tiešo kameras attēlu otrādi. Līdz šim jūs esat kodējis normālu attēlu, horizontāli pagrieztu attēlu un vertikāli apvērstu attēlu. Izveidosim veidu, kā starp tām braukt ar velosipēdu.

Cikla veidošana

Tā vietā, lai katru reizi pārrakstītu jūsu kodu, mēs varam izmantot ciparus, lai tos pārvietotu. Izveidojiet jaunu vesels skaitlis koda augšdaļā pārslēdzējs .

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

Mēs varam izmantot slēdža vērtību, lai noteiktu, kas notiek ar kameras attēlu. Kad skice sākas, jūs piešķirat tai vērtību 0 . Tagad mēs varam izmantot loģiku, lai mainītu to, kas notiek ar attēlu. Atjauniniet savu izdarīt metode, kā izskatīties šādi:

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

Tagad visas trīs koda variācijas tiks aktivizētas atkarībā no slēdža vērtības. Ja tas nesakrīt ar kādu no mūsu ja vai ja citādi paziņojumi, citādi klauzula tiek atiestatīta uz 0. Loģika ir svarīga iesācēju iemācīšanās, un jūs varat uzzināt par tām un daudz ko citu, izmantojot lielisku YouTube programmēšanas apmācību!

Izmantojot peli

Apstrādei ir iebūvētas metodes, kā piekļūt pelei. Lai noteiktu, kad lietotājs noklikšķina uz peles, pievienojiet peles nospiests funkciju skripta apakšā.

kas ir integrēta grafiskā karte
void mousePressed(){
switcher++;
}

Apstrāde klausās peles klikšķus un pārtrauc programmu, lai veiktu šo metodi, ja tā to atklāj. Katru reizi, kad tiek izsaukta metode, slēdža vērtība kļūst par vienu lielāka. Saglabājiet un palaidiet savu skriptu.

Tagad, nospiežot peles pogu, tā atgriežas pie dažādiem videoklipu virzieniem, pirms atgriežas pie oriģināla. Līdz šim jūs tikai pagriezāt videoklipu, tagad darīsim kaut ko interesantāku.

Papildu efektu pievienošana

Tagad jūs kodēsit četru krāsu dzīvā attēla efektu, kas līdzīgs slavenajiem Endija Vorhola mākslas darbiem. Citu efektu pievienošana ir tikpat vienkārša kā loģikas pievienošana citai klauzulai. Pievienojiet to savam skriptam starp pēdējo citādi, ja paziņojums, un citādi .

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

Šis kods izmanto attēlu funkciju, lai katrā ekrāna stūrī izveidotu četrus atsevišķus kameras attēlus un padarītu tos visus uz pusi lielākus.

The nokrāsa funkcija pievieno krāsu katram kameras attēlam. Skaitļi iekavās sarkans, zaļš un zils (RGB) vērtības. Nokrāsojiet visu tālāk norādīto kodu ar izvēlēto krāsu.

Saglabājiet un spēlējiet, lai redzētu rezultātu. Mēģiniet mainīt RGB numurus katrā nokrāsa funkcija krāsu maiņai!

Padarīt to pēc peles

Visbeidzot, ļaujiet tiešajam attēlam sekot peles pozīcijai, izmantojot noderīgas funkcijas no apstrādes bibliotēkas. Pievienojiet to virs citādi daļa no jūsu loģikas.

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

Šeit jūs pozicionējat attēlu no savas kameras peleX un peleY . Tās ir iebūvētas apstrādes vērtībās, kas atgriež peles norādītos pikseļus.

Tieši tā! Piecas tiešsaistes video variācijas, izmantojot kodu. Tomēr, palaižot kodu, pamanīsit dažas problēmas.

Koda pabeigšana

Līdz šim izveidotais kods darbojas, taču pamanīsit divas problēmas. Pirmkārt, kad tiek parādīta četru krāsu variācija, viss pēc tam tiek iekrāsots purpursarkanā krāsā. Otrkārt, pārvietojot video ar peli, tas atstāj pēdas. To var labot, zīmēšanas funkcijas augšdaļai pievienojot pāris rindiņas.

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

Katra kadra sākumā šis kods atiestata nokrāsu uz baltu un pievieno melnu fona krāsu, lai apturētu video atstāšanu. Tagad, pārbaudot programmu, viss darbojas perfekti!

Web kameras efekti: māksla no koda

Apstrāde ir ļoti spēcīga, un to var izmantot daudzu lietu veikšanai. Tā ir lieliska platforma mākslas veidošanai ar kodu, taču tā ir vienlīdz piemērota arī robotu vadīšanai!

Ja Java nav jūsu lieta, ir JavaScript bibliotēka, kuras pamatā ir apstrāde ar nosaukumu p5.js. Tas ir balstīts uz pārlūkprogrammu, un pat iesācēji to var izmantot, lai izveidotu fantastiskas reaktīvas animācijas!

Attēlu kredīts: Syda_Productions / Depositphotos

Kopīgot Kopīgot Čivināt E -pasts 3 veidi, kā pārbaudīt, vai e -pasts ir īsts vai viltots

Ja esat saņēmis e -pastu, kas izskatās mazliet apšaubāms, vienmēr vislabāk ir pārbaudīt tā autentiskumu. Šeit ir trīs veidi, kā noteikt, vai e -pasts ir īsts.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Java
  • Tīmekļa kamera
  • Apstrāde
  • Kodēšanas apmācības
Par autoru Īans Baklijs(Publicēti 216 raksti)

Īans Baklijs ir ārštata žurnālists, mūziķis, izpildītājs un video producents, kas dzīvo Berlīnē, Vācijā. Kad viņš neraksta vai nav uz skatuves, viņš ķeras pie DIY elektronikas vai koda, cerot kļūt par traku zinātnieku.

Vairāk no Īana Baklija

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu