जावा और प्रोसेसिंग का उपयोग करके अद्भुत वेब कैमरा प्रभाव कैसे बनाएं

जावा और प्रोसेसिंग का उपयोग करके अद्भुत वेब कैमरा प्रभाव कैसे बनाएं

प्रसंस्करण एक शक्तिशाली उपकरण है जो कोड के माध्यम से कला के निर्माण की अनुमति देता है। यह ग्राफिक्स के साथ काम करने के लिए जावा लाइब्रेरी का संयोजन है, और एक एकीकृत विकास वातावरण (आईडीई) है जो आपको आसानी से कोड लिखने और चलाने की अनुमति देता है।





कई ग्राफिक्स और एनीमेशन शुरुआती परियोजनाएं हैं जो प्रसंस्करण का उपयोग करती हैं, लेकिन यह लाइव वीडियो में हेरफेर करने में भी सक्षम है।





आज आप प्रोसेसिंग वीडियो लाइब्रेरी का उपयोग करके माउस द्वारा नियंत्रित विभिन्न प्रभावों का लाइव वीडियो स्लाइड शो बना रहे होंगे। लाइव वीडियो को फ़्लिप करने के साथ-साथ, आप उसका आकार बदलना और उसे रंगना और माउस कर्सर का अनुसरण करना सीखेंगे।





परियोजना सेटअप

शुरू करने के लिए, प्रसंस्करण डाउनलोड करें और एक खाली स्केच खोलें। यह ट्यूटोरियल विंडोज सिस्टम पर आधारित है, लेकिन इसे वेबकैम वाले किसी भी कंप्यूटर पर काम करना चाहिए।

आपको प्रोसेसिंग वीडियो लाइब्रेरी को स्थापित करने की आवश्यकता हो सकती है, जिसके तहत पहुंच योग्य है स्केच > लाइब्रेरी इंपोर्ट करें > लाइब्रेरी जोड़ें . निम्न को खोजें वीडियो खोज बॉक्स में, और पुस्तकालय स्थापित करें प्रसंस्करण फाउंडेशन .



एक बार स्थापित होने के बाद, आप जाने के लिए तैयार हैं। यदि आप कोडिंग को छोड़ना चाहते हैं, तो आप कर सकते हैं पूरा स्केच डाउनलोड करें . हालाँकि, इसे स्वयं खरोंच से बनाना बेहतर है!

प्रसंस्करण के साथ वेबकैम का उपयोग करना

आइए पुस्तकालय को आयात करके और a . बनाकर शुरू करें सेट अप समारोह। रिक्त प्रसंस्करण स्केच में निम्नलिखित दर्ज करें:





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

वीडियो लाइब्रेरी आयात करने के बाद, आप एक बनाते हैं कब्जा उदाहरण कहा जाता है संतरा वेबकैम से डेटा स्टोर करने के लिए। में सेट अप , NS आकार फ़ंक्शन सेट करता है a 640x480 काम करने के लिए पिक्सेल आकार की खिड़की।

अगली पंक्ति असाइन करती है संतरा के एक नए उदाहरण के लिए कब्जा , के लिये यह स्केच, जो कि खिड़की के आकार के समान है, कैमरे को चालू करने के लिए कहने से पहले कैम.स्टार्ट () .





अगर आप अभी इसके हर हिस्से को नहीं समझ पा रहे हैं तो चिंता न करें। संक्षेप में, हमने प्रोसेसिंग को एक विंडो बनाने, अपना कैमरा ढूंढने और इसे चालू करने के लिए कहा है! इसे प्रदर्शित करने के लिए हमें एक की आवश्यकता है खींचना समारोह। इसे ऊपर दिए गए कोड के नीचे, घुंघराले कोष्ठक के बाहर दर्ज करें।

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

NS खींचना फ़ंक्शन को हर फ्रेम कहा जाता है। इसका मतलब है कि हर सेकेंड में कई बार, अगर कैमरे में डेटा है उपलब्ध आप पढ़ना इससे डेटा।

यह डेटा तब एक के रूप में प्रदर्शित होता है छवि , पद पर 0, 0 , जो खिड़की के ऊपर बाईं ओर है।

अपना स्केच सहेजें, और स्क्रीन के शीर्ष पर स्थित प्ले बटन दबाएं।

सफलता! द्वारा संग्रहीत डेटा संतरा स्क्रीन पर हर फ्रेम में सही ढंग से प्रिंट किया जा रहा है। यदि आपको समस्या हो रही है, तो अपना कोड अच्छी तरह से जांचें। Java को हर ब्रैकेट और सेमी-कोलन को सही जगह चाहिए! वेबकैम को एक्सेस करने के लिए प्रोसेसिंग के लिए कुछ सेकंड की आवश्यकता हो सकती है, इसलिए यदि आपको लगता है कि यह काम नहीं कर रहा है तो स्क्रिप्ट लॉन्च करने के कुछ सेकंड बाद प्रतीक्षा करें।

तस्वीर पलटना

अब जब आपके पास एक लाइव वेबकैम छवि है, तो चलिए इसमें हेरफेर करते हैं। ड्रा फ़ंक्शन में, बदलें छवि (कैम, 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 प्रोग्रामिंग ट्यूटोरियल के साथ उनके बारे में और बहुत कुछ जान सकते हैं!

माउस का उपयोग करना

प्रसंस्करण में माउस तक पहुँचने के लिए अंतर्निहित विधियाँ हैं। यह पता लगाने के लिए कि उपयोगकर्ता कब माउस पर क्लिक करता है, जोड़ें माउस दबाया आपकी स्क्रिप्ट के निचले भाग में कार्य करें।

मेरी डिस्क 100 . पर चल रही है
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);
}

यह कोड का उपयोग करता है छवि स्क्रीन के प्रत्येक कोने में चार अलग-अलग कैमरा चित्र बनाने और उन सभी को आधा आकार देने के लिए कार्य करता है।

NS टिंट फ़ंक्शन प्रत्येक कैमरा छवि में रंग जोड़ता है। कोष्ठक संख्याएँ हैं लाल, हरा और नीला (RGB) मूल्य। निम्नलिखित सभी कोड को चुने हुए रंग से रंग दें।

परिणाम देखने के लिए सहेजें और खेलें। प्रत्येक में RGB नंबर बदलने का प्रयास करें टिंट रंग बदलने के लिए कार्य!

इसे बनाना माउस का पालन करें

अंत में, लाइव इमेज को प्रोसेसिंग लाइब्रेरी से सहायक कार्यों का उपयोग करके माउस की स्थिति का अनुसरण करते हैं। इसे ऊपर जोड़ें अन्यथा आपके तर्क का हिस्सा।

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!

प्रत्येक फ्रेम की शुरुआत में यह कोड टिंट के रंग को सफेद पर रीसेट करता है, और वीडियो छोड़ने के निशान को रोकने के लिए काले रंग का एक पृष्ठभूमि रंग जोड़ता है। अब जब आप प्रोग्राम का परीक्षण करते हैं, तो सब कुछ पूरी तरह से काम करता है!

वेब कैमरा प्रभाव: कोड से कला

प्रसंस्करण बहुत शक्तिशाली है, और आप इसका उपयोग कई काम करने के लिए कर सकते हैं। कोड के साथ कला बनाने के लिए यह एक उत्कृष्ट मंच है, लेकिन यह रोबोट को नियंत्रित करने के लिए समान रूप से उपयुक्त है!

यदि जावा आपकी चीज नहीं है, तो प्रसंस्करण पर आधारित एक जावास्क्रिप्ट पुस्तकालय है जिसे p5.js कहा जाता है। यह ब्राउज़र-आधारित है, और यहां तक ​​कि शुरुआती भी इसका उपयोग शानदार प्रतिक्रियाशील एनिमेशन बनाने के लिए कर सकते हैं!

छवि क्रेडिट: Syda_Productions / जमा तस्वीरें

साझा करना साझा करना कलरव ईमेल यह जांचने के 3 तरीके हैं कि कोई ईमेल असली है या नकली

यदि आपको कोई ऐसा ईमेल प्राप्त हुआ है जो थोड़ा संदिग्ध लगता है, तो इसकी प्रामाणिकता की जांच करना हमेशा सर्वोत्तम होता है। ईमेल असली है या नहीं, यह बताने के तीन तरीके यहां दिए गए हैं।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • जावा
  • वेबकैम
  • प्रसंस्करण
  • कोडिंग ट्यूटोरियल
लेखक के बारे में इयान बकले(२१६ लेख प्रकाशित)

इयान बकले बर्लिन, जर्मनी में रहने वाले एक स्वतंत्र पत्रकार, संगीतकार, कलाकार और वीडियो निर्माता हैं। जब वह लिख नहीं रहा होता है या मंच पर नहीं होता है, तो वह पागल वैज्ञानिक बनने की उम्मीद में DIY इलेक्ट्रॉनिक्स या कोड के साथ छेड़छाड़ कर रहा होता है।

इयान बकले की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें