6.3 KiB
Tangkap Gambar - Perangkat IoT Virtual
Dalam bagian pelajaran ini, Anda akan menambahkan sensor kamera ke perangkat IoT virtual Anda, dan membaca gambar darinya.
Perangkat Keras
Perangkat IoT virtual akan menggunakan kamera simulasi yang mengirimkan gambar dari file atau webcam Anda.
Tambahkan Kamera ke CounterFit
Untuk menggunakan kamera virtual, Anda perlu menambahkannya ke aplikasi CounterFit.
Tugas - Tambahkan Kamera ke CounterFit
Tambahkan kamera ke aplikasi CounterFit.
-
Buat aplikasi Python baru di komputer Anda dalam folder bernama
fruit-quality-detector
dengan satu file bernamaapp.py
dan lingkungan virtual Python, lalu tambahkan paket pip CounterFit.⚠️ Anda dapat merujuk ke instruksi untuk membuat dan mengatur proyek Python CounterFit di pelajaran 1 jika diperlukan.
-
Instal paket Pip tambahan untuk menginstal shim CounterFit yang dapat berkomunikasi dengan sensor Kamera dengan mensimulasikan beberapa Paket Pip Picamera. Pastikan Anda menginstalnya dari terminal dengan lingkungan virtual yang diaktifkan.
pip install counterfit-shims-picamera
-
Pastikan aplikasi web CounterFit sedang berjalan.
-
Buat kamera:
-
Di kotak Create sensor pada panel Sensors, klik dropdown pada kotak Sensor type dan pilih Camera.
-
Atur Name menjadi
Picamera
. -
Pilih tombol Add untuk membuat kamera.
Kamera akan dibuat dan muncul di daftar sensor.
-
Program Kamera
Perangkat IoT virtual sekarang dapat diprogram untuk menggunakan kamera virtual.
Tugas - Program Kamera
Program perangkat.
-
Pastikan aplikasi
fruit-quality-detector
terbuka di VS Code. -
Buka file
app.py
. -
Tambahkan kode berikut ke bagian atas
app.py
untuk menghubungkan aplikasi ke CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Tambahkan kode berikut ke file
app.py
Anda:import io from counterfit_shims_picamera import PiCamera
Kode ini mengimpor beberapa pustaka yang diperlukan, termasuk kelas
PiCamera
dari pustaka counterfit_shims_picamera. -
Tambahkan kode berikut di bawah ini untuk menginisialisasi kamera:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Kode ini membuat objek PiCamera, mengatur resolusi menjadi 640x480. Meskipun resolusi yang lebih tinggi didukung, pengklasifikasi gambar bekerja pada gambar yang jauh lebih kecil (227x227) sehingga tidak perlu menangkap dan mengirim gambar yang lebih besar.
Baris
camera.rotation = 0
mengatur rotasi gambar dalam derajat. Jika Anda perlu memutar gambar dari webcam atau file, atur sesuai kebutuhan. Misalnya, jika Anda ingin mengubah gambar pisang di webcam dalam mode lanskap menjadi potret, aturcamera.rotation = 90
. -
Tambahkan kode berikut di bawah ini untuk menangkap gambar sebagai data biner:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Kode ini membuat objek
BytesIO
untuk menyimpan data biner. Gambar dibaca dari kamera sebagai file JPEG dan disimpan dalam objek ini. Objek ini memiliki indikator posisi untuk mengetahui di mana posisinya dalam data sehingga lebih banyak data dapat ditulis di akhir jika diperlukan, sehingga barisimage.seek(0)
memindahkan posisi ini kembali ke awal agar semua data dapat dibaca nanti. -
Di bawah ini, tambahkan kode berikut untuk menyimpan gambar ke file:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Kode ini membuka file bernama
image.jpg
untuk ditulis, lalu membaca semua data dari objekBytesIO
dan menulisnya ke file.💁 Anda dapat menangkap gambar langsung ke file daripada objek
BytesIO
dengan memberikan nama file ke panggilancamera.capture
. Alasan menggunakan objekBytesIO
adalah agar nanti dalam pelajaran ini Anda dapat mengirim gambar ke pengklasifikasi gambar Anda. -
Konfigurasikan gambar yang akan ditangkap oleh kamera di CounterFit. Anda dapat mengatur Source ke File, lalu mengunggah file gambar, atau mengatur Source ke WebCam, dan gambar akan ditangkap dari webcam Anda. Pastikan Anda memilih tombol Set setelah memilih gambar atau memilih webcam Anda.
-
Gambar akan ditangkap dan disimpan sebagai
image.jpg
di folder saat ini. Anda akan melihat file ini di penjelajah VS Code. Pilih file untuk melihat gambar. Jika perlu rotasi, perbarui bariscamera.rotation = 0
sesuai kebutuhan dan ambil gambar lagi.
💁 Anda dapat menemukan kode ini di folder code-camera/virtual-iot-device.
😀 Program kamera Anda berhasil!
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau interpretasi yang keliru yang timbul dari penggunaan terjemahan ini.