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 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।