6.6 KiB
Bir Görüntü Yakalama - Sanal IoT Donanımı
Bu dersin bu bölümünde, sanal IoT cihazınıza bir kamera sensörü ekleyecek ve bu sensörden görüntüler okuyacaksınız.
Donanım
Sanal IoT cihazı, dosyalardan veya web kameranızdan görüntüler gönderen simüle edilmiş bir kamera kullanacaktır.
Kamerayı CounterFit'e Ekleme
Sanal bir kamera kullanmak için, CounterFit uygulamasına bir kamera eklemeniz gerekir.
Görev - Kamerayı CounterFit'e ekleyin
Kamerayı CounterFit uygulamasına ekleyin.
-
Bilgisayarınızda
fruit-quality-detector
adlı bir klasördeapp.py
adlı tek bir dosya ve bir Python sanal ortamı ile yeni bir Python uygulaması oluşturun ve CounterFit pip paketlerini ekleyin.⚠️ Gerekirse ders 1'de CounterFit Python projesi oluşturma ve ayarlama talimatlarına başvurabilirsiniz.
-
Kamera sensörleriyle iletişim kurabilen ve bazı Picamera Pip paketi özelliklerini simüle eden bir CounterFit shim yüklemek için ek bir Pip paketi yükleyin. Bu işlemi, sanal ortamın etkin olduğu bir terminalden yaptığınızdan emin olun.
pip install counterfit-shims-picamera
-
CounterFit web uygulamasının çalıştığından emin olun.
-
Bir kamera oluşturun:
-
Sensors panelindeki Create sensor kutusunda, Sensor type açılır kutusundan Camera seçeneğini seçin.
-
Name alanına
Picamera
yazın. -
Kamerayı oluşturmak için Add düğmesini seçin.
Kamera oluşturulacak ve sensörler listesinde görünecektir.
-
Kamerayı Programlama
Sanal IoT cihazı artık sanal kamerayı kullanacak şekilde programlanabilir.
Görev - Kamerayı programlayın
Cihazı programlayın.
-
fruit-quality-detector
uygulamasının VS Code'da açık olduğundan emin olun. -
app.py
dosyasını açın. -
Uygulamayı CounterFit'e bağlamak için aşağıdaki kodu
app.py
dosyasının en üstüne ekleyin:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Aşağıdaki kodu
app.py
dosyanıza ekleyin:import io from counterfit_shims_picamera import PiCamera
Bu kod, gerekli bazı kütüphaneleri, CounterFit shim'inden
PiCamera
sınıfı dahil olmak üzere içe aktarır. -
Kamerayı başlatmak için aşağıdaki kodu ekleyin:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Bu kod, bir PiCamera nesnesi oluşturur ve çözünürlüğü 640x480 olarak ayarlar. Daha yüksek çözünürlükler desteklenmesine rağmen, görüntü sınıflandırıcı çok daha küçük görüntülerle (227x227) çalışır, bu nedenle daha büyük görüntüler yakalamaya ve göndermeye gerek yoktur.
camera.rotation = 0
satırı, görüntünün döndürülme açısını derece cinsinden ayarlar. Web kamerasından veya dosyadan gelen görüntüyü döndürmeniz gerekiyorsa, bu değeri uygun şekilde ayarlayın. Örneğin, bir web kamerasındaki yatay moddaki bir muz görüntüsünü dikey moda çevirmek istiyorsanız,camera.rotation = 90
olarak ayarlayın. -
Görüntüyü ikili veri olarak yakalamak için aşağıdaki kodu ekleyin:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Bu kod, ikili verileri depolamak için bir
BytesIO
nesnesi oluşturur. Görüntü, kameradan bir JPEG dosyası olarak okunur ve bu nesnede saklanır. Bu nesne, verilerin neresinde olduğunu bilmek için bir konum göstergesine sahiptir, böylece gerekirse daha fazla veri sona yazılabilir.image.seek(0)
satırı, bu konumu başa döndürerek tüm verilerin daha sonra okunabilmesini sağlar. -
Görüntüyü bir dosyaya kaydetmek için aşağıdakileri ekleyin:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Bu kod, yazma için
image.jpg
adlı bir dosya açar, ardındanBytesIO
nesnesinden tüm verileri okur ve bu dosyaya yazar.💁 Görüntüyü bir
BytesIO
nesnesi yerine doğrudan bir dosyaya yakalamak içincamera.capture
çağrısına dosya adını geçebilirsiniz. Bu derste daha sonra görüntüyü görüntü sınıflandırıcınıza gönderebilmek içinBytesIO
nesnesi kullanılmıştır. -
CounterFit'teki kameranın yakalayacağı görüntüyü yapılandırın. Source seçeneğini File olarak ayarlayabilir ve bir görüntü dosyası yükleyebilir veya Source seçeneğini WebCam olarak ayarlayarak görüntülerin web kameranızdan yakalanmasını sağlayabilirsiniz. Bir resim seçtikten veya web kameranızı seçtikten sonra Set düğmesini seçtiğinizden emin olun.
-
Bir görüntü yakalanacak ve mevcut klasörde
image.jpg
olarak kaydedilecektir. Bu dosyayı VS Code gezgininde göreceksiniz. Dosyayı seçerek görüntüyü görüntüleyin. Döndürme gerekiyorsa,camera.rotation = 0
satırını uygun şekilde güncelleyin ve başka bir fotoğraf çekin.
💁 Bu kodu code-camera/virtual-iot-device klasöründe bulabilirsiniz.
😀 Kamera programınız başarıyla çalıştı!
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.