12 KiB
प्रतिमा कॅप्चर करा - व्हर्च्युअल IoT हार्डवेअर
या धड्याच्या भागात, तुम्ही तुमच्या व्हर्च्युअल IoT डिव्हाइसला कॅमेरा सेन्सर जोडाल आणि त्यातून प्रतिमा वाचाल.
हार्डवेअर
व्हर्च्युअल IoT डिव्हाइस एक सिम्युलेटेड कॅमेरा वापरेल जो फाइल्समधून किंवा तुमच्या वेबकॅममधून प्रतिमा पाठवतो.
CounterFit मध्ये कॅमेरा जोडा
व्हर्च्युअल कॅमेरा वापरण्यासाठी, तुम्हाला CounterFit अॅपमध्ये एक कॅमेरा जोडावा लागेल.
कार्य - CounterFit मध्ये कॅमेरा जोडा
CounterFit अॅपमध्ये कॅमेरा जोडा.
-
तुमच्या संगणकावर
fruit-quality-detector
नावाच्या फोल्डरमध्ये एक नवीन Python अॅप तयार करा ज्यामध्येapp.py
नावाची एक फाइल आणि Python व्हर्च्युअल वातावरण असेल, आणि CounterFit pip पॅकेजेस जोडा.⚠️ गरज असल्यास CounterFit Python प्रोजेक्ट तयार करण्यासाठी आणि सेटअप करण्यासाठी धडा 1 मधील सूचना पाहू शकता.
-
एक अतिरिक्त Pip पॅकेज इंस्टॉल करा जे कॅमेरा सेन्सर्सशी संवाद साधण्यासाठी CounterFit shim इंस्टॉल करते, ज्यामुळे काही Picamera Pip पॅकेज सिम्युलेट केले जाते. हे व्हर्च्युअल वातावरण सक्रिय असलेल्या टर्मिनलमधून इंस्टॉल करत असल्याची खात्री करा.
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
हा कोड आवश्यक असलेल्या काही लायब्ररी आयात करतो, ज्यामध्ये counterfit_shims_picamera लायब्ररीमधील
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
ऑब्जेक्टमधून सर्व डेटा वाचतो आणि फाइलमध्ये लिहितो.💁 तुम्ही प्रतिमा थेट फाइलमध्ये कॅप्चर करू शकता
camera.capture
कॉलला फाइलचे नाव देऊन.BytesIO
ऑब्जेक्ट वापरण्याचे कारण म्हणजे या धड्याच्या पुढील भागात तुम्ही प्रतिमा तुमच्या प्रतिमा वर्गीकरणासाठी पाठवू शकता. -
CounterFit मध्ये कॅमेरा कॅप्चर करणार असलेल्या प्रतिमेची कॉन्फिगरेशन करा. तुम्ही Source
File
सेट करू शकता, नंतर प्रतिमा फाइल अपलोड करा, किंवा SourceWebCam
सेट करू शकता, आणि प्रतिमा तुमच्या वेबकॅममधून कॅप्चर केल्या जातील. प्रतिमा निवडल्यानंतर किंवा वेबकॅम निवडल्यानंतर Set बटण निवडण्याची खात्री करा. -
प्रतिमा कॅप्चर केली जाईल आणि
image.jpg
नावाने वर्तमान फोल्डरमध्ये सेव्ह केली जाईल. तुम्ही ही फाइल VS Code एक्सप्लोररमध्ये पाहू शकता. फाइल निवडा आणि प्रतिमा पहा. जर रोटेशन आवश्यक असेल, तरcamera.rotation = 0
ओळ आवश्यकतेनुसार अपडेट करा आणि पुन्हा प्रतिमा घ्या.
💁 तुम्ही हा कोड code-camera/virtual-iot-device फोल्डरमध्ये शोधू शकता.
😀 तुमचा कॅमेरा प्रोग्राम यशस्वी झाला!
अस्वीकरण:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.