Како створити невероватне ефекте веб камере помоћу Јаве и обраде

Како створити невероватне ефекте веб камере помоћу Јаве и обраде

Обрада је моћан алат који омогућава стварање уметности помоћу кода. То је комбинација Јава библиотеке за рад са графиком и интегрисаног развојног окружења (ИДЕ) које вам омогућава лако писање и покретање кода.





Постоји много пројеката за графику и анимацију за почетнике који користе Процессинг, али је такође у стању да манипулише видео записима уживо.





Данас ћете уживо правити видео пројекцију слајдова различитих ефеката које контролише миш, користећи видеотеку Процессинг. Осим окретања видео записа уживо, научићете да му промените величину и боју и како да га натерате да прати курсор миша.





Подешавање пројекта

Да почне, преузимање Обрада и отворите празну скицу. Овај водич је заснован на Виндовс систему, али би требало да ради на било ком рачунару са веб камером.

Можда ћете морати да инсталирате библиотеку Процессинг Видео, којој можете приступити под Скица> Увези библиотеку> Додај библиотеку . Тражити Видео у оквиру за претрагу и инсталирајте библиотеку из Тхе Процессинг Фоундатион .



Једном инсталирани, спремни сте за рад. Ако желите да прескочите кодирање, можете преузмите комплетну скицу . Ипак, много је боље да то сами направите!

Коришћење веб камере са обрадом

Почнимо са увозом библиотеке и креирањем подесити функција. У празну скицу обраде унесите следеће:





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

Након увоза видеотеке, креирате Цаптуре инстанца позвана Оранге за складиштење података са веб камере. Ин подесити , тхе величина функција поставља а 640к480 прозор величине пиксела за рад.

Следећи ред додељује Оранге на нову инстанцу Цаптуре , за ово скицу, исте величине као и прозор, пре него што кажете камери да се укључи цам.старт () .





Не брините ако за сада не разумете сваки део овога. Укратко, Процессингу смо рекли да направи прозор, пронађе нашу камеру и укључи је! За приказ нам је потребан а извлачење функција. Унесите ово испод кода изнад, изван увијених заграда.

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

Тхе извлачење функција се позива сваки оквир. То значи да много пута сваке секунде, ако камера има податке доступан ти читати податке из ње.

Ови подаци се затим приказују као слика , на позицији 0, 0 , који се налази у горњем левом углу прозора.

Сачувајте своју скицу и притисните дугме за репродукцију при врху екрана.

Успјех! Подаци које складишти Оранге правилно се штампа на екрану сваки кадар. Ако имате проблема, темељно проверите код. Јава треба сваку заграду и тачку и зарез на правом месту! Обрада такође може захтевати неколико секунди за приступ веб камери, па ако мислите да не ради, сачекајте неколико секунди након покретања скрипте.

Окретање слике

Сада када имате слику веб камере уживо, хајде да њоме манипулишемо. У функцији извлачења замените слика (камера, 0,0); са ова два реда кода.

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

Сачувајте и поново покрените скицу. Видите ли разлику? Коришћењем негатива Скала вредност, све Икс вредности (хоризонтални пиксели) су сада обрнуте. Због тога морамо да користимо негативну вредност прозора ширина да бисте правилно позиционирали слику.

Окретање слике наопако захтева само неколико малих промена.

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

Овај пут, обоје Икс и и вредности се окрећу, окрећући слику са камере уживо. До сада сте кодирали нормалну слику, хоризонтално окренуту слику и вертикално окренуту слику. Хајде да поставимо начин да се крећемо између њих.

Макинг Ит Цицле

Уместо да сваки пут преписујемо ваш код, можемо да користимо бројеве да их прођемо кроз циклус. Створити нова цео број на врху вашег кода који се зове прекидач .

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

Можемо користити вредност прекидача да одредимо шта се дешава са сликом камере. Када скица почне, дајете јој вредност 0 . Сада можемо користити логику да променимо шта се дешава са сликом. Ажурирајте свој извлачење начин да изгледа овако:

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

Сада ће се све три варијанте кода покренути у зависности од вредности прекидача. Ако не одговара неком од наших ако или ако друго изјаве, елсе клаузула се ресетује на 0. Логика је важна почетничка вештина за учење, а о њима и много више можете сазнати уз одличан ИоуТубе водич за програмирање!

Коришћење миша

Обрада има уграђене методе за приступ мишу. Да бисте открили када корисник кликне мишем, додајте моусеПрессед функција на дну ваше скрипте.

зашто мој ВиФи позив не ради
void mousePressed(){
switcher++;
}

Обрада ослушкује сваки клик миша и прекида програм да спроведе ову методу када га открије. Сваки пут када се метода позове, вредност прекидача се повећава за један. Сачувајте и покрените скрипту.

Сада, када притиснете тастер миша, он се креће кроз различите оријентације видео записа, пре него што се врати на оригинал. До сада сте управо окренули видео, а сада учинимо нешто мало занимљивије.

Додавање више ефеката

Сада ћете кодирати ефекат живе слике у четири боје сличан познатим уметничким делима Андија Вархола. Додавање више ефеката једноставно је као и додавање друге клаузуле у логику. Додајте ово у своју скрипту између последњег иначе ако изјава, и елсе .

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

Овај код користи слика функција за креирање четири засебне слике са камере у сваком углу екрана и да све буду упола величине.

Тхе нијансирати функција додаје боју свакој слици камере. Бројеви у заградама су црвена, зелена и плава (РГБ) вредности. Нијансирајте све следеће кодове изабраном бојом.

Сачувајте и играјте да видите резултат. Покушајте да промените РГБ бројеве у сваком нијансирати функција за промену боја!

Како да прати миша

На крају, учинимо да жива слика прати положај миша помоћу корисних функција из библиотеке Процессинг. Додајте ово изнад елсе део ваше логике.

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

Овде постављате слику са камере на моусеКс и моусеИ . Ово су уграђене вредности обраде које враћају пиксел на који миш показује.

То је то! Пет варијација видео записа уживо путем кода. Међутим, када покренете код, приметићете неколико проблема.

Довршавање кода

Код који сте до сада креирали функционише, али ћете приметити два проблема. Прво, када се покаже варијација у четири боје, све је касније обојено љубичасто. Друго, када померате видео запис мишем, он оставља траг. Можете то поправити додавањем неколико редова на врх функције за цртање.

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

На почетку сваког кадра овај код ресетује боју нијансе на белу и додаје црну боју позадине како би видео спречио остављање трагова. Сада када тестирате програм, све ради савршено!

Ефекти веб камере: Уметност из кода

Обрада је веома моћна и можете је користити за многе ствари. То је одлична платформа за стварање уметности са кодом, али је једнако погодна за контролу робота!

Ако Јава није ваша ствар, постоји ЈаваСцрипт библиотека заснована на обради која се зове п5.јс. Базиран је на прегледачу, па чак и почетници могу да га користе за стварање фантастичних реактивних анимација!

Кредит за слику: Сида_Продуцтионс / Депоситпхотос

Објави Објави Твеет Емаил 3 начина да проверите да ли је е -пошта права или лажна

Ако сте примили е -поруку која изгледа помало сумњиво, увек је најбоље да проверите њену аутентичност. Ево три начина да утврдите да ли је адреса е -поште права.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Јава
  • Вебцам
  • Обрада
  • Кодирање Туториали
О аутору Иан Буцклеи(216 објављених чланака)

Иан Буцклеи је слободни новинар, музичар, извођач и видео продуцент који живи у Берлину, Немачка. Кад не пише или је на сцени, петља са „уради сам“ електроником или кодом у нади да ће постати луди научник.

Више од Иана Буцклеија

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили