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-detectoradlı bir klasördeapp.pyadlı 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
Picamerayazı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-detectoruygulamasının VS Code'da açık olduğundan emin olun. -
app.pydosyasını açın. -
Uygulamayı CounterFit'e bağlamak için aşağıdaki kodu
app.pydosyasının en üstüne ekleyin:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) -
Aşağıdaki kodu
app.pydosyanıza ekleyin:import io from counterfit_shims_picamera import PiCameraBu kod, gerekli bazı kütüphaneleri, CounterFit shim'inden
PiCamerası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 = 0Bu 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 = 0satı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 = 90olarak 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
BytesIOnesnesi 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.jpgadlı bir dosya açar, ardındanBytesIOnesnesinden tüm verileri okur ve bu dosyaya yazar.💁 Görüntüyü bir
BytesIOnesnesi 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çinBytesIOnesnesi 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.jpgolarak 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 = 0satı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.


