- Keperluan
- Memasang OpenCV di Raspberry Pi
- Memasang Pakej Yang Diperlukan yang lain
- Persediaan Perkakasan Pembaca Kod Raspberry pi QR
- Kod Python untuk Pembaca Kod Raspberry Pi QR
- Menguji Pengimbas Kod Raspberry Pi QR
Kod QR (kod Respons Cepat) adalah sejenis kod bar matriks yang mengandungi maklumat mengenai item yang dilampirkan, seperti data lokasi, pengecam, atau pelacak yang mengenal pasti laman web atau aplikasi, dll. Ini adalah optik yang dapat dibaca oleh mesin label yang berbentuk gambar 2D dan mempunyai corak yang berbeza. Untuk mengetahui lebih lanjut mengenai kod QR dan cara menghasilkan kod QR, ikuti tutorial kami sebelumnya.
Dalam tutorial ini, kita akan membina Pengimbas Kod QR berasaskan Raspberry Pi menggunakan perpustakaan OpenCV dan ZBar. ZBar adalah perpustakaan terbaik untuk mengesan dan menyahkod pelbagai jenis kod bar dan kod QR. OpenCV digunakan untuk mengambil bingkai baru dari aliran video, dan memprosesnya. Setelah OpenCV menangkap bingkai, maka kita dapat menyebarkannya ke pustaka penyahkodan barcode Python khusus seperti ZBar yang menyahkod kod bar dan mengubahnya menjadi maklumat masing-masing.
Keperluan
- Raspberry Pi 3 (versi apa pun)
- Modul Kamera Pi
Sebelum meneruskan pengimbas kod QR Raspberry Pi 3 ini, pertama, kita perlu memasang OpenCV, perpustakaan penyahkodan Barcode ZBar, imutils, dan beberapa pergantungan lain dalam projek ini. OpenCV digunakan di sini untuk pemprosesan gambar digital. Aplikasi Pemprosesan Imej Digital yang paling biasa adalah pengesanan objek, Pengecaman Wajah, dan penghitungan orang.
Memasang OpenCV di Raspberry Pi
Di sini perpustakaan OpenCV akan digunakan untuk pengimbas Raspberry Pi QR. Untuk memasang OpenCV, pertama, kemas kini Pi Raspberry.
sudo apt-get kemas kini
Kemudian pasang kebergantungan yang diperlukan untuk memasang OpenCV pada Raspberry Pi anda.
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-test –y
Selepas itu, pasang OpenCV di Raspberry Pi menggunakan arahan di bawah.
pip3 memasang opencv-contrib-python == 4.1.0.25
Kami sebelum ini menggunakan OpenCV dengan Raspberry pi dan membuat banyak tutorial mengenainya.
- Memasang OpenCV pada Raspberry Pi menggunakan CMake
- Pengecaman Muka Masa Nyata dengan Raspberry Pi dan OpenCV
- Pengiktirafan Plat Lesen menggunakan Raspberry Pi dan OpenCV
- Anggaran Ukuran Orang Ramai Menggunakan OpenCV dan Raspberry Pi
Kami juga telah membuat siri tutorial OpenCV bermula dari peringkat pemula.
Memasang Pakej Yang Diperlukan yang lain
Memasang ZBar
Zbar adalah perpustakaan terbaik untuk mengesan dan menyahkod pelbagai jenis kod bar dan kod QR. Gunakan arahan di bawah untuk memasang perpustakaan:
pip3 memasang pyzbar
Memasang imutil
imutils digunakan untuk membuat fungsi pemprosesan gambar penting seperti terjemahan, putaran, pengubahan ukuran, kerangka, dan menampilkan gambar Matplotlib lebih mudah dengan OpenCV. Gunakan arahan di bawah untuk memasang imutil:
pip3 memasang imutil
Memasang argparse
Gunakan arahan di bawah untuk memasang perpustakaan argparse. argparse bertanggungjawab untuk menghuraikan argumen baris perintah.
pip3 memasang argparse
Persediaan Perkakasan Pembaca Kod Raspberry pi QR
Di sini kami hanya memerlukan kamera Raspberry Pi dan Pi untuk pengimbas kod QR ini menggunakan Kamera Raspberry Pi dan anda hanya perlu melampirkan penyambung pita kamera di slot kamera yang diberikan di Raspberry pi
Kamera Pi boleh digunakan untuk membina pelbagai projek menarik seperti Kamera Pengawasan Raspberry Pi, Sistem Pemantauan Pengunjung, Sistem Keselamatan Rumah, dll.
Kod Python untuk Pembaca Kod Raspberry Pi QR
Kod lengkap untuk pembaca Raspberry Pi QR diberikan di akhir halaman. Sebelum kita memprogram Raspberry Pi, mari kita memahami kodnya.
Jadi, seperti biasa, mulakan kod dengan mengimport semua pakej yang diperlukan.
dari imutils.video import VideoStream dari pyzbar import pyzbar import argparse import datetime import imutils import time import cv2
Kemudian bina penghurai hujah dan huraikan hujah. Argumen baris arahan mengandungi maklumat mengenai jalan fail CSV. Fail CSV (Comma Separated Values) mengandungi cap waktu dan muatan setiap kod bar dari aliran video kami.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "jalan ke output fail CSV yang mengandungi kod bar") args = vars () ap.parse_args ())
Selepas itu, mulakan aliran video dan lepaskan baris komen jika anda menggunakan kamera web USB.
#vs = VideoStream (src = 0).start () vs = VideoStream (usePiCamera = True). memulakan () masa. tidur (2.0)
Sekarang dalam gelung, ambil bingkai dari aliran video dan ubah saiznya menjadi 400 piksel. Setelah mengambil bingkai, panggil fungsi pyzbar.decode untuk mengesan dan menyahkod kod QR.
frame = vs.read () frame = imutils. resize (frame, width = 400) kod bar = pyzbar.decode (bingkai)
Sekarang, gelung kod bar yang dikesan untuk mengekstrak lokasi kod bar dan lukiskan kotak pengikat di sekitar kod bar pada gambar.
untuk kod bar dalam kod bar: (x, y, w, h) = barcode.rect cv2.rectangle (bingkai, (x, y), (x + w, y + h), (0, 0, 255), 2)
Kemudian decode barcode yang dikesan menjadi rentetan "utf-8" menggunakan fungsi decode ("utf-8") dan kemudian ekstrak jenis barcode menggunakan fungsi barcode.type.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
Selepas itu, simpan data kod bar dan jenis kod bar yang diekstrak di dalam teks bernama pemboleh ubah, dan lukiskan data kod bar dan taip pada gambar.
text = "{} ({})". format (barcodeData, barcodeType) cv2.putText (bingkai, teks, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
Sekarang paparkan output dengan data kod bar dan jenis kod bar.
cv2.imshow ("Pembaca Kod Bar", bingkai)
Sekarang pada langkah terakhir, periksa apakah kunci ditekan, kemudian keluar gelung utama dan mulakan proses pembersihan.
key = cv2.waitKey (1) & 0xFF # jika kekunci `s` ditekan, putus dari gelung jika kunci == ord (" s "): break print (" clean up… ") csv.close () cv2.destroyAllWindows () vs.stop ()
Menguji Pengimbas Kod Raspberry Pi QR
Setelah persediaan anda siap, lancarkan program pembaca kod QR. Anda akan melihat tetingkap yang menunjukkan paparan langsung dari kamera anda, kini anda dapat menunjukkan kod bar di hadapan kamera PI. Apabila pi menyahkod kod bar, ia akan melukis kotak merah di sekelilingnya dengan data kod bar dan jenis kod bar seperti yang ditunjukkan dalam gambar di bawah:
Ini adalah bagaimana anda dapat membina Pembaca Kod QR Kamera Raspberry Pi dengan mudah hanya dengan menggunakan papan Raspberry Pi dan kamera Pi atau kamera USB.
Video yang berfungsi dan kod lengkap untuk projek ini diberikan di bawah.