12 KiB
वर्चुअल IoT हार्डवेयर - एक छवि कैप्चर करें
इस पाठ के इस भाग में, आप अपने वर्चुअल IoT डिवाइस में एक कैमरा सेंसर जोड़ेंगे और उससे छवियां पढ़ेंगे।
हार्डवेयर
वर्चुअल IoT डिवाइस एक सिम्युलेटेड कैमरा का उपयोग करेगा जो या तो फाइलों से छवियां भेजता है या आपके वेबकैम से।
CounterFit में कैमरा जोड़ें
वर्चुअल कैमरा का उपयोग करने के लिए, आपको इसे CounterFit ऐप में जोड़ना होगा।
कार्य - CounterFit में कैमरा जोड़ें
CounterFit ऐप में कैमरा जोड़ें।
-
अपने कंप्यूटर पर
fruit-quality-detector
नामक एक फ़ोल्डर में एक नया Python ऐप बनाएं, जिसमें एकल फ़ाइलapp.py
हो और एक Python वर्चुअल एनवायरनमेंट हो, और CounterFit पिप पैकेज जोड़ें।⚠️ यदि आवश्यक हो, तो पाठ 1 में CounterFit Python प्रोजेक्ट बनाने और सेटअप करने के निर्देशों का संदर्भ लें।
-
एक अतिरिक्त पिप पैकेज इंस्टॉल करें जो एक CounterFit शिम इंस्टॉल करता है, जो Camera सेंसर से बात कर सकता है और Picamera पिप पैकेज का कुछ सिमुलेशन करता है। सुनिश्चित करें कि आप इसे वर्चुअल एनवायरनमेंट सक्रिय होने के साथ टर्मिनल से इंस्टॉल कर रहे हैं।
pip install counterfit-shims-picamera
-
सुनिश्चित करें कि CounterFit वेब ऐप चल रहा है।
-
एक कैमरा बनाएं:
-
Sensors पैन में Create sensor बॉक्स में, Sensor type ड्रॉपडाउन करें और Camera चुनें।
-
Name को
Picamera
पर सेट करें। -
कैमरा बनाने के लिए Add बटन चुनें।
कैमरा बनाया जाएगा और सेंसर सूची में दिखाई देगा।
-
कैमरा प्रोग्राम करें
अब वर्चुअल IoT डिवाइस को वर्चुअल कैमरा का उपयोग करने के लिए प्रोग्राम किया जा सकता है।
कार्य - कैमरा प्रोग्राम करें
डिवाइस को प्रोग्राम करें।
-
सुनिश्चित करें कि
fruit-quality-detector
ऐप VS Code में खुला है। -
app.py
फ़ाइल खोलें। -
CounterFit से ऐप को कनेक्ट करने के लिए
app.py
के शीर्ष पर निम्न कोड जोड़ें:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
अपने
app.py
फ़ाइल में निम्न कोड जोड़ें:import io from counterfit_shims_picamera import PiCamera
यह कोड कुछ आवश्यक लाइब्रेरी आयात करता है, जिसमें
PiCamera
क्लास भी शामिल है, जो counterfit_shims_picamera लाइब्रेरी से है। -
इसके नीचे कैमरा को इनिशियलाइज़ करने के लिए निम्न कोड जोड़ें:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
यह कोड एक PiCamera ऑब्जेक्ट बनाता है, और इसका रिज़ॉल्यूशन 640x480 पर सेट करता है। हालांकि उच्च रिज़ॉल्यूशन समर्थित हैं, इमेज क्लासिफायर बहुत छोटे चित्रों (227x227) पर काम करता है, इसलिए बड़े चित्र कैप्चर और भेजने की आवश्यकता नहीं है।
camera.rotation = 0
लाइन छवि के रोटेशन को डिग्री में सेट करती है। यदि आपको वेबकैम या फाइल से छवि को घुमाने की आवश्यकता है, तो इसे उपयुक्त रूप से सेट करें। उदाहरण के लिए, यदि आप लैंडस्केप मोड में एक केले की छवि को पोर्ट्रेट में बदलना चाहते हैं, तोcamera.rotation = 90
सेट करें। -
इसके नीचे छवि को बाइनरी डेटा के रूप में कैप्चर करने के लिए निम्न कोड जोड़ें:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
यह कोड एक
BytesIO
ऑब्जेक्ट बनाता है जो बाइनरी डेटा स्टोर करता है। कैमरा से छवि को JPEG फाइल के रूप में पढ़ा जाता है और इस ऑब्जेक्ट में स्टोर किया जाता है। इस ऑब्जेक्ट में एक पोजिशन इंडिकेटर होता है जो यह जानने के लिए होता है कि डेटा में यह कहां है ताकि यदि आवश्यक हो तो अंत में और डेटा लिखा जा सके। इसलिए,image.seek(0)
लाइन इस पोजिशन को फिर से शुरू में ले जाती है ताकि बाद में सभी डेटा पढ़ा जा सके। -
इसके नीचे छवि को एक फाइल में सेव करने के लिए निम्न कोड जोड़ें:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
यह कोड
image.jpg
नामक एक फाइल को लिखने के लिए खोलता है, फिरBytesIO
ऑब्जेक्ट से सभी डेटा पढ़ता है और उसे फाइल में लिखता है।💁 आप छवि को सीधे एक फाइल में कैप्चर कर सकते हैं
BytesIO
ऑब्जेक्ट के बजाय, फाइल का नामcamera.capture
कॉल में पास करके। इस पाठ में बाद में आप छवि को अपने इमेज क्लासिफायर को भेजने के लिएBytesIO
ऑब्जेक्ट का उपयोग करेंगे, इसलिए इसे यहां उपयोग किया गया है। -
उस छवि को कॉन्फ़िगर करें जिसे CounterFit में कैमरा कैप्चर करेगा। आप या तो Source को File पर सेट कर सकते हैं, फिर एक छवि फाइल अपलोड करें, या Source को WebCam पर सेट कर सकते हैं, और छवियां आपके वेबकैम से कैप्चर की जाएंगी। सुनिश्चित करें कि आपने एक तस्वीर चुनने या अपने वेबकैम का चयन करने के बाद Set बटन चुना है।
-
एक छवि कैप्चर की जाएगी और वर्तमान फ़ोल्डर में
image.jpg
के रूप में सेव की जाएगी। आप इस फाइल को VS Code एक्सप्लोरर में देखेंगे। छवि देखने के लिए फाइल का चयन करें। यदि इसे रोटेशन की आवश्यकता है, तोcamera.rotation = 0
लाइन को आवश्यकतानुसार अपडेट करें और एक और तस्वीर लें।
💁 आप इस कोड को code-camera/virtual-iot-device फ़ोल्डर में पा सकते हैं।
😀 आपका कैमरा प्रोग्राम सफल रहा!
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।