כיצד ליצור אפקטים מדהימים של מצלמת רשת באמצעות ג'אווה ועיבוד

כיצד ליצור אפקטים מדהימים של מצלמת רשת באמצעות ג'אווה ועיבוד

עיבוד הוא כלי רב עוצמה המאפשר יצירת אמנות באמצעות קוד. זהו השילוב של ספריית ג'אווה לעבודה עם גרפיקה, וסביבת פיתוח משולבת (IDE) המאפשרת לך לכתוב ולהפעיל קוד בקלות.





ישנם הרבה פרויקטים מתחילים של גרפיקה והנפשה המשתמשים בעיבוד, אך הם גם מסוגלים לתפעל וידיאו חי.





היום תעשה מצגת וידאו חיה של אפקטים שונים הנשלטים על ידי העכבר, באמצעות ספריית הווידאו לעיבוד. כמו גם להפוך את הסרטון החי, תלמד לשנות את הגודל שלו ולצבוע אותו, וכיצד לגרום לו לעקוב אחר סמן העכבר.





הגדרת פרויקט

להתחיל, הורדת עיבוד ולפתוח סקיצה ריקה. הדרכה זו מבוססת על מערכת Windows, אך היא אמורה לפעול בכל מחשב עם מצלמת רשת.

ייתכן שיהיה עליך להתקין את ספריית וידאו העיבוד, הנגישה תחת סקיצה> ייבוא ​​ספרייה> הוסף ספרייה . לחפש אחר וִידֵאוֹ בתיבת החיפוש, והתקן את הספרייה מ קרן העיבוד .



לאחר ההתקנה, אתה מוכן לצאת לדרך. אם אתה רוצה לדלג על הקידוד, אתה יכול להוריד את המערכון המלא . עם זאת, הרבה יותר טוב להכין בעצמך מאפס!

שימוש במצלמת אינטרנט עם עיבוד

נתחיל בייבוא ​​הספרייה וליצירת א להכין פוּנקצִיָה. הזן את הדברים הבאים במערכון העיבוד הריק:





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

לאחר ייבוא ​​ספריית הווידאו, אתה יוצר לִלְכּוֹד מופע שנקרא תפוז כדי לאחסן את הנתונים ממצלמת האינטרנט. ב להכין , ה גודל הפונקציה מגדירה א 640x480 חלון בגודל פיקסל לעבודה.

השורה הבאה מקצה תפוז למופע חדש של לִלְכּוֹד , ל זֶה סקיצה, שהיא באותו גודל כמו החלון, לפני שאומרים למצלמה להדליק איתה cam.start () .





אל תדאג אם אינך מבין כל חלק מזה בינתיים. בקיצור, אמרנו לעיבוד לעשות חלון, למצוא את המצלמה שלנו ולהדליק אותה! כדי להציג אותו אנו צריכים א לצייר פוּנקצִיָה. הזן זאת מתחת לקוד שלמעלה, מחוץ לסוגריים המתולתלים.

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. ההיגיון הוא מיומנות חשובה למתחילים, ותוכל ללמוד עליהם ועוד הרבה בעזרת מדריך תכנות מעולה של YouTube!

שימוש בעכבר

לעיבוד יש שיטות מובנות לגישה לעכבר. כדי לזהות מתי המשתמש לוחץ על העכבר, הוסף את עכבר לחוץ פונקציה בתחתית התסריט שלך.

הורד קבצים מצורפים מהודעות דוא"ל מרובות gmail
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);
}

קוד זה משתמש ב- תמונה פונקציה ליצירת ארבע תמונות מצלמה נפרדות בכל פינה של המסך ולהפוך את כולן לגודל חצי.

ה לִצְבּוֹעַ הפונקציה מוסיפה צבע לכל תמונת מצלמה. המספרים שהסוגריים הם אדום, ירוק וכחול (RGB) ערכים. גוון צבע את כל הקוד הבא עם הצבע הנבחר.

שמור ושחק כדי לראות את התוצאה. נסה לשנות את מספרי ה- RGB בכל אחד לִצְבּוֹעַ פונקציה לשינוי הצבעים!

לגרום לזה לעקוב אחר העכבר

לבסוף, בואו לגרום לתמונה החיה לעקוב אחר מיקום העכבר באמצעות פונקציות מועילות מספריית העיבוד. הוסף זאת מעל ה- אַחֵר חלק מההיגיון שלך.

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

כאן אתה ממקם את התמונה מהמצלמה שלך ב mouseX ו עַכבָּרִי . אלה מובנים בערכי עיבוד המחזירים לאיזה פיקסל העכבר מצביע.

זהו זה! חמש וריאציות של וידאו חי באמצעות קוד. עם זאת, בעת הפעלת הקוד, תבחין בכמה בעיות.

מסיימים את הקוד

הקוד שיצרת עד כה עובד, אך תבחין בשתי בעיות. ראשית, ברגע שהווריאציה של ארבעת הצבעים מופיעה, הכל אחר כך כהה בגוון סגול. שנית, כאשר אתה מזיז את הסרטון עם העכבר, הוא מותיר עקבות. אתה יכול לתקן את זה על ידי הוספת כמה שורות לראש פונקציית הציור.

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

בתחילת כל פריים קוד זה מאפס את צבע הגוון ללבן, ומוסיף צבע רקע של שחור כדי לעצור את הווידיאו משאיר שבילים. עכשיו כאשר אתה בודק את התוכנית, הכל עובד בצורה מושלמת!

אפקטים של מצלמת רשת: Art From Code

העיבוד הוא מאוד חזק, ואתה יכול להשתמש בו כדי לעשות הרבה דברים. זוהי פלטפורמה מצוינת לייצור אמנות עם קוד, אך היא מתאימה לא פחות לשליטה ברובוטים!

אם Java אינו הדבר שלך, יש ספריית JavaScript המבוססת על עיבוד בשם p5.js. הוא מבוסס דפדפן, ואפילו מתחילים יכולים להשתמש בו ליצירת הנפשות תגובתיות פנטסטיות!

קרדיט תמונה: Syda_Productions / פיקדונות

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 3 דרכים לבדוק אם דוא'ל אמיתי או מזויף

אם קיבלת מייל שנראה קצת מפוקפק, תמיד עדיף לבדוק את האותנטיות שלו. להלן שלוש דרכים לדעת אם הודעת דוא'ל אמיתית.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • ג'אווה
  • מצלמת אינטרנט
  • מעבד
  • הדרכות קידוד
על הסופר איאן באקלי(פורסמו 216 מאמרים)

איאן באקלי הוא עיתונאי, מוזיקאי, מבצע ומפיק וידאו עצמאי המתגורר בברלין, גרמניה. כשהוא לא כותב או על במה, הוא מתעסק עם מוצרי אלקטרוניקה DIY או קוד בתקווה להפוך למדען מטורף.

עוד מאת איאן באקלי

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה