# تصویر حاصل کریں - ورچوئل IoT ہارڈویئر اس سبق کے اس حصے میں، آپ اپنے ورچوئل IoT ڈیوائس میں کیمرہ سینسر شامل کریں گے اور اس سے تصاویر پڑھیں گے۔ ## ہارڈویئر ورچوئل IoT ڈیوائس ایک سیمولیٹڈ کیمرہ استعمال کرے گا جو یا تو فائلز سے تصاویر بھیجے گا یا آپ کے ویب کیم سے۔ ### CounterFit میں کیمرہ شامل کریں ورچوئل کیمرہ استعمال کرنے کے لیے، آپ کو اسے CounterFit ایپ میں شامل کرنا ہوگا۔ #### کام - CounterFit میں کیمرہ شامل کریں CounterFit ایپ میں کیمرہ شامل کریں۔ 1. اپنے کمپیوٹر پر `fruit-quality-detector` نامی فولڈر میں ایک نیا Python ایپ بنائیں، جس میں ایک فائل `app.py` ہو اور Python ورچوئل ماحول ہو، اور CounterFit pip پیکجز شامل کریں۔ > ⚠️ اگر ضرورت ہو تو [سبق 1 میں CounterFit Python پروجیکٹ بنانے اور سیٹ اپ کرنے کے لیے ہدایات](../../../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.ur.png) کیمرہ بنایا جائے گا اور سینسرز کی فہرست میں ظاہر ہوگا۔ ![بنایا گیا کیمرہ](../../../../../translated_images/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.ur.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.ur.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) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔