- Gereksinimler
- OpenCV'yi Raspberry Pi'ye Yükleme
- Diğer Gerekli Paketleri Yükleme
- Raspberry pi QR Kod Okuyucu Donanım Kurulumu
- Raspberry Pi QR Kod Okuyucu için Python kodu
- Raspberry Pi QR Code Tarayıcıyı Test Etme
QR kodu (Hızlı Yanıt kodu), konum verileri, tanımlayıcı veya bir web sitesini veya uygulamayı tanımlayan bir izleyici gibi eklendiği öğe hakkında bilgiler içeren bir matris barkod türüdür. Makine tarafından okunabilir bir optiktir. 2B görüntü şeklindeki ve farklı bir desene sahip etiket. QR kodları ve nasıl bir QR kodu oluşturulacağı hakkında daha fazla bilgi edinmek için önceki eğitimimizi izleyin.
Bu eğiticide, OpenCV ve ZBar kitaplığını kullanarak Raspberry Pi tabanlı bir QR Kod Tarayıcı oluşturacağız. ZBar, farklı türdeki barkodları ve QR kodlarını tespit etmek ve çözmek için en iyi kitaplıktır. OpenCV, bir video akışından yeni bir kare almak ve onu işlemek için kullanılır. OpenCV bir çerçeve yakaladığında, onu barkodu çözen ve ilgili bilgilere dönüştüren ZBar gibi özel bir Python barkod çözme kitaplığına geçirebiliriz.
Gereksinimler
- Raspberry Pi 3 (herhangi bir sürüm)
- Pi Kamera Modülü
Bu Raspberry Pi 3 QR kod tarayıcıya geçmeden önce, öncelikle bu projede OpenCV, Barkod kod çözme kitaplığı ZBar, imutils ve diğer bazı bağımlılıkları kurmamız gerekiyor. OpenCV, burada dijital görüntü işleme için kullanılır. Dijital Görüntü İşlemenin en yaygın uygulamaları nesne algılama, Yüz Tanıma ve insan sayacıdır.
OpenCV'yi Raspberry Pi'ye Yükleme
Burada OpenCV kütüphanesi Raspberry Pi QR tarayıcı için kullanılacaktır. OpenCV'yi kurmak için önce Raspberry Pi'yi güncelleyin.
sudo apt-get güncellemesi
Ardından OpenCV'yi Raspberry Pi'nize yüklemek için gerekli bağımlılıkları kurun.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 -y sudo apt-get install libqt4-testi -y
Bundan sonra, aşağıdaki komutu kullanarak OpenCV'yi Raspberry Pi'ye kurun.
pip3 kurulum opencv-katkıda-python == 4.1.0.25
Daha önce OpenCV'yi Raspberry pi ile kullandık ve üzerinde birçok öğretici oluşturduk.
- OpenCV'yi CMake kullanarak Raspberry Pi'ye yükleme
- Raspberry Pi ve OpenCV ile Gerçek Zamanlı Yüz Tanıma
- Raspberry Pi ve OpenCV kullanarak Plaka Tanıma
- OpenCV ve Raspberry Pi Kullanarak Kalabalık Boyutu Tahmini
Başlangıç seviyesinden başlayarak bir dizi OpenCV öğreticisi de oluşturduk.
Diğer Gerekli Paketleri Yükleme
ZBar'ı yükleme
Zbar, farklı tipteki barkodları ve QR kodlarını tespit etmek ve çözmek için en iyi kitaplıktır. Kitaplığı kurmak için aşağıdaki komutu kullanın:
pip3 pyzbar'ı kurun
İmutils yükleme
imutils; çevirme, döndürme, yeniden boyutlandırma, iskeletleştirme ve Matplotlib görüntülerini OpenCV ile görüntüleme gibi temel görüntü işleme işlevlerini kolaylaştırmak için kullanılır. İmutil'leri yüklemek için aşağıdaki komutu kullanın:
pip3 imutils yükle
yükleme argparse
Argparse kitaplığını kurmak için aşağıdaki komutu kullanın. argparse , komut satırı argümanlarının ayrıştırılmasından sorumludur.
pip3 argparse yükleyin
Raspberry pi QR Kod Okuyucu Donanım Kurulumu
Burada Raspberry Pi Kamera kullanan bu QR kod tarayıcı için sadece Raspberry Pi ve Pi kamera gerekiyor ve sadece Raspberry pi'de verilen kamera yuvasına kamera şerit konektörünü takmanız gerekiyor.
Pi kamera, Raspberry Pi Gözetleme Kamerası, Ziyaretçi İzleme Sistemi, Ev Güvenlik Sistemi vb.Gibi çeşitli ilginç projeler oluşturmak için kullanılabilir.
Raspberry Pi QR Kod Okuyucu için Python kodu
Raspberry Pi QR okuyucu için tam kod sayfanın sonunda verilmiştir. Raspberry Pi'yi programlamadan önce kodu anlayalım.
Bu nedenle, her zamanki gibi, gerekli tüm paketleri içe aktararak kodu başlatın.
imutils.video'dan VideoStream'i pyzbar'dan içe aktarın pyzbar'ı içe aktarın argparse içe aktarım datetime içe aktarım imutils içe aktarma süresi içe aktarma cv2
Ardından bağımsız değişken çözümleyiciyi oluşturun ve bağımsız değişkenleri ayrıştırın. Komut satırı bağımsız değişkeni, CSV dosyasının yolu hakkında bilgi içerir. CSV (Virgülle Ayrılmış Değerler) dosyası, video akışımızdaki her barkodun zaman damgasını ve yükünü içerir.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "barkod içeren CSV dosyası çıktı yolu") args = vars (ap.parse_args ())
Bundan sonra, video akışını başlatın ve USB web kamerası kullanıyorsanız yorum satırını kaldırın.
#vs = VideoStream (src = 0).start () vs = VideoStream (usePiCamera = True).start () time.sleep (2.0)
Şimdi döngünün içinde, video akışından bir kare alın ve onu 400 piksel olarak yeniden boyutlandırın. Çerçeveyi aldıktan sonra, QR kodunu algılamak ve çözmek için pyzbar.decode işlevini çağırın.
çerçeve = vs. okunmuş () çerçeve = imutils.resize (çerçeve, genişlik = 400) barkodlar = pyzbar.decode (çerçeve)
Şimdi, barkodun konumunu çıkarmak için algılanan barkodlar üzerinde döngü yapın ve sınırlayıcı kutuyu görüntüdeki barkodun etrafına çizin.
barkodlarda barkod için: (x, y, w, h) = barcode.rect cv2.rectangle (çerçeve, (x, y), (x + w, y + h), (0, 0, 255), 2)
Ardından, algılanan barkodun kodunu çözme ("utf-8") işlevini kullanarak bir "utf-8" dizesi olarak çözün ve ardından barkod.type işlevini kullanarak barkod türünü çıkarın.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
Bundan sonra, çıkarılan barkod verilerini ve barkod türünü metin adlı bir değişkene kaydedin ve barkod verilerini çizin ve görüntü üzerine yazın.
text = "{} ({})". format (barcodeData, barcodeType) cv2.putText (çerçeve, metin, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
Şimdi çıktıyı barkod verileri ve barkod türü ile görüntüleyin.
cv2.imshow ("Barkod Okuyucu", çerçeve)
Şimdi son adımda, 's' tuşuna basılıp basılmadığını kontrol edin, ardından ana döngüyü kırın ve temizleme işlemini başlatın.
key = cv2.waitKey (1) & 0xFF # "s` tuşuna basılırsa döngüden çıkın eğer key == ord (" s "): yazdırmayı kes (" temizleniyor… ") csv.close () cv2.destroyAllWindows () ile stop () karşılaştırması
Raspberry Pi QR Code Tarayıcıyı Test Etme
Kurulumunuz hazır olduğunda, QR kod okuyucu programını başlatın. Kameranızdan canlı görüntüyü gösteren bir pencere göreceksiniz, şimdi barkodları PI kameranın önünde sunabilirsiniz. Pi bir barkodu çözdüğünde, aşağıdaki resimde gösterildiği gibi barkod verileri ve barkod türü ile etrafına kırmızı bir kutu çizecektir:
Raspberry Pi kartını ve Pi kamerasını veya USB kamerayı kullanarak bir Raspberry Pi Kamera QR Kod Okuyucusunu kolayca oluşturmanın yolu budur.
Bu proje için bir çalışma videosu ve eksiksiz kod aşağıda verilmiştir.