12 KiB
ਇੱਕ ਚਿੱਤਰ ਕੈਪਚਰ ਕਰੋ - ਵਰਚੁਅਲ IoT ਹਾਰਡਵੇਅਰ
ਇਸ ਪਾਠ ਦੇ ਇਸ ਭਾਗ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ ਕੈਮਰਾ ਸੈਂਸਰ ਸ਼ਾਮਲ ਕਰੋਗੇ ਅਤੇ ਇਸ ਤੋਂ ਚਿੱਤਰ ਪੜ੍ਹੋਗੇ।
ਹਾਰਡਵੇਅਰ
ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਇੱਕ ਨਕਲੀ ਕੈਮਰਾ ਵਰਤੇਗਾ ਜੋ ਜਾਂ ਤਾਂ ਫਾਈਲਾਂ ਤੋਂ ਚਿੱਤਰ ਭੇਜਦਾ ਹੈ ਜਾਂ ਤੁਹਾਡੇ ਵੈਬਕੈਮ ਤੋਂ।
ਕਾਊਂਟਰਫਿਟ ਵਿੱਚ ਕੈਮਰਾ ਸ਼ਾਮਲ ਕਰੋ
ਵਰਚੁਅਲ ਕੈਮਰਾ ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਕਾਊਂਟਰਫਿਟ ਐਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਪਵੇਗਾ।
ਟਾਸਕ - ਕਾਊਂਟਰਫਿਟ ਵਿੱਚ ਕੈਮਰਾ ਸ਼ਾਮਲ ਕਰੋ
ਕਾਊਂਟਰਫਿਟ ਐਪ ਵਿੱਚ ਕੈਮਰਾ ਸ਼ਾਮਲ ਕਰੋ।
-
ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ
fruit-quality-detectorਨਾਮਕ ਫੋਲਡਰ ਵਿੱਚ ਇੱਕ ਨਵਾਂ ਪਾਇਥਨ ਐਪ ਬਣਾਓ ਜਿਸ ਵਿੱਚapp.pyਨਾਮਕ ਇੱਕ ਫਾਈਲ ਹੋਵੇ ਅਤੇ ਇੱਕ ਪਾਇਥਨ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਓ, ਅਤੇ ਕਾਊਂਟਰਫਿਟ ਪਿਪ ਪੈਕੇਜ ਸ਼ਾਮਲ ਕਰੋ।⚠️ ਤੁਸੀਂ ਪਾਠ 1 ਵਿੱਚ ਕਾਊਂਟਰਫਿਟ ਪਾਇਥਨ ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਅਤੇ ਸੈਟਅੱਪ ਕਰਨ ਦੇ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਜ਼ਰੂਰਤ ਪੈਣ 'ਤੇ ਵੇਖ ਸਕਦੇ ਹੋ।
-
ਇੱਕ ਵਾਧੂ ਪਿਪ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ ਜੋ ਕਾਊਂਟਰਫਿਟ ਸ਼ਿਮ ਨੂੰ ਕੈਮਰਾ ਸੈਂਸਰਾਂ ਨਾਲ ਗੱਲ ਕਰਨ ਲਈ ਇੰਸਟਾਲ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਕੁਝ Picamera Pip ਪੈਕੇਜ ਨੂੰ ਨਕਲ ਕਰਦਾ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਇਹ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਐਕਟੀਵੇਟ ਕੀਤੇ ਹੋਏ ਟਰਮੀਨਲ ਤੋਂ ਇੰਸਟਾਲ ਕਰ ਰਹੇ ਹੋ।
pip install counterfit-shims-picamera -
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਕਾਊਂਟਰਫਿਟ ਵੈਬ ਐਪ ਚੱਲ ਰਹੀ ਹੈ।
-
ਕੈਮਰਾ ਬਣਾਓ:
-
Sensors ਪੈਨ ਵਿੱਚ Create sensor ਬਾਕਸ ਵਿੱਚ, Sensor type ਡ੍ਰਾਪਡਾਊਨ ਬਾਕਸ ਵਿੱਚੋਂ Camera ਚੁਣੋ।
-
Name ਨੂੰ
Picameraਸੈਟ ਕਰੋ। -
Add ਬਟਨ ਚੁਣੋ ਤਾਂ ਜੋ ਕੈਮਰਾ ਬਣਾਇਆ ਜਾ ਸਕੇ।
ਕੈਮਰਾ ਬਣਾਇਆ ਜਾਵੇਗਾ ਅਤੇ ਸੈਂਸਰਾਂ ਦੀ ਸੂਚੀ ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗਾ।
-
ਕੈਮਰੇ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ
ਹੁਣ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਨੂੰ ਵਰਚੁਅਲ ਕੈਮਰਾ ਵਰਤਣ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਟਾਸਕ - ਕੈਮਰੇ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ
ਡਿਵਾਈਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ।
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ
fruit-quality-detectorਐਪ VS Code ਵਿੱਚ ਖੁੱਲੀ ਹੈ। -
app.pyਫਾਈਲ ਖੋਲ੍ਹੋ। -
app.pyਦੇ ਉੱਪਰ ਹਿੱਸੇ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ ਐਪ ਨੂੰ ਕਾਊਂਟਰਫਿਟ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਸਕੇ:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) -
ਆਪਣੇ
app.pyਫਾਈਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:import io from counterfit_shims_picamera import PiCameraਇਹ ਕੋਡ ਕੁਝ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ
PiCameraਕਲਾਸ ਵੀ ਸ਼ਾਮਲ ਹੈ ਜੋ ਕਿ counterfit_shims_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ਆਬਜੈਕਟ ਵਰਤਣ ਦਾ ਕਾਰਨ ਇਹ ਹੈ ਕਿ ਇਸ ਪਾਠ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਤੁਸੀਂ ਚਿੱਤਰ ਨੂੰ ਆਪਣੇ ਚਿੱਤਰ ਕਲਾਸੀਫਾਇਰ ਨੂੰ ਭੇਜ ਸਕਦੇ ਹੋ। -
ਕਾਊਂਟਰਫਿਟ ਵਿੱਚ ਕੈਮਰੇ ਦੁਆਰਾ ਕੈਪਚਰ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਚਿੱਤਰ ਨੂੰ ਕਨਫਿਗਰ ਕਰੋ। ਤੁਸੀਂ Source ਨੂੰ File 'ਤੇ ਸੈਟ ਕਰ ਸਕਦੇ ਹੋ, ਫਿਰ ਇੱਕ ਚਿੱਤਰ ਫਾਈਲ ਅਪਲੋਡ ਕਰੋ, ਜਾਂ Source ਨੂੰ WebCam 'ਤੇ ਸੈਟ ਕਰੋ, ਅਤੇ ਚਿੱਤਰ ਤੁਹਾਡੇ ਵੈਬਕੈਮ ਤੋਂ ਕੈਪਚਰ ਕੀਤੇ ਜਾਣਗੇ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਚਿੱਤਰ ਚੁਣਨ ਜਾਂ ਵੈਬਕੈਮ ਚੁਣਨ ਦੇ ਬਾਅਦ Set ਬਟਨ ਚੁਣੋ।
-
ਇੱਕ ਚਿੱਤਰ ਕੈਪਚਰ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ
image.jpgਵਜੋਂ ਮੌਜੂਦਾ ਫੋਲਡਰ ਵਿੱਚ ਸੇਵ ਕੀਤਾ ਜਾਵੇਗਾ। ਤੁਸੀਂ ਇਸ ਫਾਈਲ ਨੂੰ VS Code ਐਕਸਪਲੋਰਰ ਵਿੱਚ ਵੇਖੋਗੇ। ਫਾਈਲ ਨੂੰ ਚੁਣੋ ਤਾਂ ਜੋ ਚਿੱਤਰ ਵੇਖਿਆ ਜਾ ਸਕੇ। ਜੇ ਇਸਨੂੰ ਘੁੰਮਾਉਣ ਦੀ ਲੋੜ ਹੈ, ਤਾਂcamera.rotation = 0ਲਾਈਨ ਨੂੰ ਜ਼ਰੂਰਤ ਅਨੁਸਾਰ ਅਪਡੇਟ ਕਰੋ ਅਤੇ ਇੱਕ ਹੋਰ ਚਿੱਤਰ ਲਓ।
💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-camera/virtual-iot-device ਫੋਲਡਰ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ।
😀 ਤੁਹਾਡਾ ਕੈਮਰਾ ਪ੍ਰੋਗਰਾਮ ਸਫਲ ਰਿਹਾ!
ਅਸਵੀਕਰਤਾ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।


