You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

124 lines
12 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3ba7150ffc4a6999f6c3cfb4906ec7df",
"translation_date": "2025-08-25T16:32:31+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md",
"language_code": "hi"
}
-->
# वर्चुअल IoT हार्डवेयर - एक छवि कैप्चर करें
इस पाठ के इस भाग में, आप अपने वर्चुअल IoT डिवाइस में एक कैमरा सेंसर जोड़ेंगे और उससे छवियां पढ़ेंगे।
## हार्डवेयर
वर्चुअल IoT डिवाइस एक सिम्युलेटेड कैमरा का उपयोग करेगा जो या तो फाइलों से छवियां भेजता है या आपके वेबकैम से।
### CounterFit में कैमरा जोड़ें
वर्चुअल कैमरा का उपयोग करने के लिए, आपको इसे CounterFit ऐप में जोड़ना होगा।
#### कार्य - CounterFit में कैमरा जोड़ें
CounterFit ऐप में कैमरा जोड़ें।
1. अपने कंप्यूटर पर `fruit-quality-detector` नामक एक फ़ोल्डर में एक नया Python ऐप बनाएं, जिसमें एकल फ़ाइल `app.py` हो और एक Python वर्चुअल एनवायरनमेंट हो, और CounterFit पिप पैकेज जोड़ें।
> ⚠️ यदि आवश्यक हो, तो [पाठ 1 में CounterFit Python प्रोजेक्ट बनाने और सेटअप करने के निर्देशों](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md) का संदर्भ लें।
1. एक अतिरिक्त पिप पैकेज इंस्टॉल करें जो एक CounterFit शिम इंस्टॉल करता है, जो Camera सेंसर से बात कर सकता है और [Picamera पिप पैकेज](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.hi.png)
कैमरा बनाया जाएगा और सेंसर सूची में दिखाई देगा।
![कैमरा बनाया गया](../../../../../translated_images/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.hi.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
```
यह कोड कुछ आवश्यक लाइब्रेरी आयात करता है, जिसमें `PiCamera` क्लास भी शामिल है, जो counterfit_shims_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` ऑब्जेक्ट से सभी डेटा पढ़ता है और उसे फाइल में लिखता है।
> 💁 आप छवि को सीधे एक फाइल में कैप्चर कर सकते हैं `BytesIO` ऑब्जेक्ट के बजाय, फाइल का नाम `camera.capture` कॉल में पास करके। इस पाठ में बाद में आप छवि को अपने इमेज क्लासिफायर को भेजने के लिए `BytesIO` ऑब्जेक्ट का उपयोग करेंगे, इसलिए इसे यहां उपयोग किया गया है।
1. उस छवि को कॉन्फ़िगर करें जिसे CounterFit में कैमरा कैप्चर करेगा। आप या तो *Source* को *File* पर सेट कर सकते हैं, फिर एक छवि फाइल अपलोड करें, या *Source* को *WebCam* पर सेट कर सकते हैं, और छवियां आपके वेबकैम से कैप्चर की जाएंगी। सुनिश्चित करें कि आपने एक तस्वीर चुनने या अपने वेबकैम का चयन करने के बाद **Set** बटन चुना है।
![CounterFit में एक फाइल को इमेज स्रोत के रूप में सेट किया गया है, और एक वेबकैम सेट किया गया है जिसमें एक व्यक्ति को केले के साथ दिखाया गया है](../../../../../translated_images/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.hi.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) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।