# प्रतिमा कॅप्चर करा - व्हर्च्युअल IoT हार्डवेअर या धड्याच्या भागात, तुम्ही तुमच्या व्हर्च्युअल IoT डिव्हाइसला कॅमेरा सेन्सर जोडाल आणि त्यातून प्रतिमा वाचाल. ## हार्डवेअर व्हर्च्युअल IoT डिव्हाइस एक सिम्युलेटेड कॅमेरा वापरेल जो फाइल्समधून किंवा तुमच्या वेबकॅममधून प्रतिमा पाठवतो. ### CounterFit मध्ये कॅमेरा जोडा व्हर्च्युअल कॅमेरा वापरण्यासाठी, तुम्हाला CounterFit अॅपमध्ये एक कॅमेरा जोडावा लागेल. #### कार्य - CounterFit मध्ये कॅमेरा जोडा CounterFit अॅपमध्ये कॅमेरा जोडा. 1. तुमच्या संगणकावर `fruit-quality-detector` नावाच्या फोल्डरमध्ये एक नवीन Python अॅप तयार करा ज्यामध्ये `app.py` नावाची एक फाइल आणि Python व्हर्च्युअल वातावरण असेल, आणि CounterFit pip पॅकेजेस जोडा. > ⚠️ गरज असल्यास [CounterFit Python प्रोजेक्ट तयार करण्यासाठी आणि सेटअप करण्यासाठी धडा 1 मधील सूचना](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md) पाहू शकता. 1. एक अतिरिक्त Pip पॅकेज इंस्टॉल करा जे कॅमेरा सेन्सर्सशी संवाद साधण्यासाठी CounterFit shim इंस्टॉल करते, ज्यामुळे काही [Picamera Pip पॅकेज](https://pypi.org/project/picamera/) सिम्युलेट केले जाते. हे व्हर्च्युअल वातावरण सक्रिय असलेल्या टर्मिनलमधून इंस्टॉल करत असल्याची खात्री करा. ```sh pip install counterfit-shims-picamera ``` 1. CounterFit वेब अॅप चालू असल्याची खात्री करा. 1. कॅमेरा तयार करा: 1. *Sensors* पॅनमधील *Create sensor* बॉक्समध्ये, *Sensor type* ड्रॉपडाउन करा आणि *Camera* निवडा. 1. *Name* `Picamera` सेट करा. 1. कॅमेरा तयार करण्यासाठी **Add** बटण निवडा. ![कॅमेरा सेटिंग्ज](../../../../../translated_images/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.mr.png) कॅमेरा तयार केला जाईल आणि सेन्सर्स यादीत दिसेल. ![तयार केलेला कॅमेरा](../../../../../translated_images/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.mr.png) ## कॅमेरा प्रोग्राम करा व्हर्च्युअल IoT डिव्हाइस आता व्हर्च्युअल कॅमेरा वापरण्यासाठी प्रोग्राम केले जाऊ शकते. ### कार्य - कॅमेरा प्रोग्राम करा डिव्हाइस प्रोग्राम करा. 1. `fruit-quality-detector` अॅप VS Code मध्ये उघडा. 1. `app.py` फाइल उघडा. 1. CounterFit शी अॅप कनेक्ट करण्यासाठी `app.py` च्या वर खालील कोड जोडा: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. तुमच्या `app.py` फाइलमध्ये खालील कोड जोडा: ```python import io from counterfit_shims_picamera import PiCamera ``` हा कोड आवश्यक असलेल्या काही लायब्ररी आयात करतो, ज्यामध्ये counterfit_shims_picamera लायब्ररीमधील `PiCamera` वर्ग समाविष्ट आहे. 1. कॅमेरा इनिशियलाइझ करण्यासाठी खालील कोड जोडा: ```python camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0 ``` हा कोड PiCamera ऑब्जेक्ट तयार करतो, रिझोल्यूशन 640x480 सेट करतो. जरी उच्च रिझोल्यूशन समर्थित असले तरी, प्रतिमा वर्गीकरणासाठी खूप लहान प्रतिमा (227x227) आवश्यक असतात, त्यामुळे मोठ्या प्रतिमा कॅप्चर करण्याची गरज नाही. `camera.rotation = 0` ओळ प्रतिमेची रोटेशन अंशात सेट करते. जर तुम्हाला वेबकॅम किंवा फाइलमधील प्रतिमा फिरवायची असेल, तर हे योग्य प्रकारे सेट करा. उदाहरणार्थ, जर तुम्हाला लँडस्केप मोडमधील वेबकॅमवरील केळ्याची प्रतिमा पोर्ट्रेटमध्ये बदलायची असेल, तर `camera.rotation = 90` सेट करा. 1. प्रतिमा बायनरी डेटामध्ये कॅप्चर करण्यासाठी खालील कोड जोडा: ```python image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0) ``` हा कोड बायनरी डेटा साठवण्यासाठी `BytesIO` ऑब्जेक्ट तयार करतो. कॅमेरामधून प्रतिमा JPEG फाइल म्हणून वाचली जाते आणि या ऑब्जेक्टमध्ये साठवली जाते. या ऑब्जेक्टमध्ये डेटा कुठे आहे हे जाणून घेण्यासाठी एक पोझिशन इंडिकेटर असतो, त्यामुळे अधिक डेटा लिहिण्यासाठी `image.seek(0)` ओळ पोझिशन परत सुरुवातीला हलवते जेणेकरून नंतर सर्व डेटा वाचता येईल. 1. प्रतिमा फाइलमध्ये सेव्ह करण्यासाठी खालील कोड जोडा: ```python with open('image.jpg', 'wb') as image_file: image_file.write(image.read()) ``` हा कोड `image.jpg` नावाची फाइल लिहिण्यासाठी उघडतो, नंतर `BytesIO` ऑब्जेक्टमधून सर्व डेटा वाचतो आणि फाइलमध्ये लिहितो. > 💁 तुम्ही प्रतिमा थेट फाइलमध्ये कॅप्चर करू शकता `camera.capture` कॉलला फाइलचे नाव देऊन. `BytesIO` ऑब्जेक्ट वापरण्याचे कारण म्हणजे या धड्याच्या पुढील भागात तुम्ही प्रतिमा तुमच्या प्रतिमा वर्गीकरणासाठी पाठवू शकता. 1. CounterFit मध्ये कॅमेरा कॅप्चर करणार असलेल्या प्रतिमेची कॉन्फिगरेशन करा. तुम्ही *Source* `File` सेट करू शकता, नंतर प्रतिमा फाइल अपलोड करा, किंवा *Source* `WebCam` सेट करू शकता, आणि प्रतिमा तुमच्या वेबकॅममधून कॅप्चर केल्या जातील. प्रतिमा निवडल्यानंतर किंवा वेबकॅम निवडल्यानंतर **Set** बटण निवडण्याची खात्री करा. ![CounterFit मध्ये प्रतिमा स्रोत म्हणून फाइल सेट केलेली, आणि वेबकॅम सेट केलेली ज्यामध्ये वेबकॅम प्रिव्ह्यूमध्ये केळा पकडलेला व्यक्ती दिसतो](../../../../../translated_images/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.mr.png) 1. प्रतिमा कॅप्चर केली जाईल आणि `image.jpg` नावाने वर्तमान फोल्डरमध्ये सेव्ह केली जाईल. तुम्ही ही फाइल VS Code एक्सप्लोररमध्ये पाहू शकता. फाइल निवडा आणि प्रतिमा पहा. जर रोटेशन आवश्यक असेल, तर `camera.rotation = 0` ओळ आवश्यकतेनुसार अपडेट करा आणि पुन्हा प्रतिमा घ्या. > 💁 तुम्ही हा कोड [code-camera/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-camera/virtual-iot-device) फोल्डरमध्ये शोधू शकता. 😀 तुमचा कॅमेरा प्रोग्राम यशस्वी झाला! --- **अस्वीकरण**: हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.