# చిత్రం పట్టుకోండి - వర్చువల్ IoT హార্ড్వేర్ ఈ పాఠం విడిభాగంలో, మీరు మీ వర్చువల్ IoT డివైస్‌కు కెమెరా సెన్సార్‌ను జోడించి, దానినుండి చిత్రాలను చదివుతారు. ## హార్డ్‌వేర్ వర్చువల్ IoT డివైస్ ఒక అనుకరణ క్యామేరాను ఉపయోగిస్తుంది, ఇది ఫైళ్ల నుంచి లేదా మీ వెబ్‌క్యామ్ నుంచి చిత్రాలను పంపిస్తుంది. ### క్యామేరాను CounterFitకి జోడించండి వర్చువల్ కెమెరాను ఉపయోగించడానికి, CounterFit యాప్‌కి ఒకటి జోడించాలి #### పని - CounterFitకి క్యామేరాను జోడించండి CounterFit యాప్‌కి కెమెరాను జోడించండి. 1. `fruit-quality-detector` అనే ఫోల్డరులో ఒక సింగిల్ ఫైల్ `app.py` ఉన్న కొత్త Python యాప్‌ను మీ కంప్యూటర్లో సృష్టించి, Python వర్చువల్ ఎన్విరాన్మెంట్‌లో CounterFit పిప్ ప్యాకేజీలను జోడించండి. > ⚠️ అవసరం అయితే [CounterFit Python ప్రాజెక్టును సృష్టించడం మరియు సెట్టప్ చేయడం పట్ల సూచనలు కోసం పాఠం 1 ను చూడండి](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md). 1. CounterFit షిమ్ ఇన్‌స్టాల్ చేయడానికి అదనపు పిప్ ప్యాకేజీని ఇన్‌స్టాల్ చేయండి, ఇది క్యామేరా సెన్సార్లతో మాట్లాడగలదు మరియు [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/te/counterfit-create-camera.a5de97f59c0bd3cb.webp) కెమెరా సృష్టించబడుతుంది మరియు సెన్సార్లు జాబితాలో కనబడుతుంది. ![క్యామేరా సృష్టించబడింది](../../../../../translated_images/te/counterfit-camera.001ec52194c8ee5d.webp) ## కెమెరాను ప్రోగ్రామ్ చేయండి వర్చువల్ IoT డివైస్ ఇప్పుడు వర్చువల్ కెమెరాను ఉపయోగించడానికి ప్రోగ్రామ్ చేయబడగలదు. ### పని - కెమెరాను ప్రోగ్రామింగ్ చేయండి డివైస్‌ను ప్రోగ్రామ్ చేయండి. 1. `fruit-quality-detector` యాప్ VS కోడ్‌లో తెరిచి ఉందని ఖచ్చితంగా చూసుకోండి 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` ఆబ్జెక్టు నుండి అన్ని డేటా చదివి ఫైల్‌లో రాస్తుంది. > 💁 మీరు `camera.capture` కాల్‌కు ఫైల్ పేరు పంపించి, చిత్రాన్ని నేరుగా ఫైల్‌గా కూడా క్యాప్చర్ చేయవచ్చు. `BytesIO` ఆబ్జెక్టును ఉపయోగించే కారణం, ఈ పాఠంలో తరువాత మీరు చిత్రాన్ని మీ ఇమేజ్ క్లాసిఫయర్‌కి పంపగలగాలని భావించినందున. 1. CounterFit లో కెమెరా పీకే చిత్రాన్ని కాన్ఫిగర్ చేయండి. మీరు *Source* ను *File* గా సెట్ చేసి, ఒక చిత్రం ఫైల్‌ను అప్‌లోడ్ చేయవచ్చు లేదా *Source* ను *WebCam* గా సెట్ చేసి, చిత్రాలు మీ వెబ్‌క్యామ్ నుండి క్యాప్చర్ చేయవచ్చు. చిత్రం లేదా వెబ్‌క్యామ్ ఎంచుకున్న తరువాత **Set** బటన్‌ను ఎంచుకోవడం మర్చిపోకండి. ![CounterFitలో ఫైల్ ని చిత్రం మూలంగా సెట్ చేసి, వెబ్ క్యామ్ కోసం ఒక వ్యక్తి అరటిపండుతో Webcam ప్రివ్యూలో ఉన్న చిత్రం](../../../../../translated_images/te/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. ప్రస్తుతం ఉన్న ఫోల్డర్‌లో చిత్రం `image.jpg` గా క్యాప్చర్ చేసి సేవ్ అవుతుంది. మీరు VS కోడ్ ఎక్స్ప్లోరర్‌లో ఈ ఫైల్‌ను చూడవచ్చు. చిత్రాన్ని వీక్షించడానికి ఫైల్‌ను ఎంచుకోండి. తిప్పించాల్సిన అవసరం ఉంటే, `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) ఉపయోగించి తర్జుమా చేశాము. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో తప్పులు లేదా అసమర్థతలు ఉండవచ్చు అని గమనించండి. ప్రాథమిక డాక్యుమెంట్ యొక్క మౌలిక భాషలోని వచనం అధికారిక మూలం గా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, నిపుణుల చేత అనువాదం పొందటం మంచిది. ఈ అనువాదం వలన కలిగే ఏవైనా అపార్థాలు లేదా మిస్అర్థాలు గురించి మేము బాధ్యత తీసుకోవడం లేదు.