- Persyaratan
- Menginstal OpenCV di Raspberry Pi
- Menginstal Paket Wajib lainnya
- Pengaturan Perangkat Keras Pembaca Kode QR Raspberry pi
- Kode Python untuk Raspberry Pi QR Code Reader
- Menguji Pemindai Kode QR Raspberry Pi
Kode QR (kode Respon Cepat) adalah jenis kode batang matriks yang berisi informasi tentang item yang dilampirkan, seperti data lokasi, pengidentifikasi, atau pelacak yang mengidentifikasi situs web atau aplikasi, dll. Ini adalah optik yang dapat dibaca mesin. label yang berupa gambar 2D dan memiliki pola yang berbeda. Untuk mempelajari lebih lanjut tentang kode QR dan cara membuat kode QR, ikuti tutorial kami sebelumnya.
Dalam tutorial ini, kita akan membuat Pemindai Kode QR berbasis Raspberry Pi menggunakan OpenCV dan perpustakaan ZBar. ZBar adalah perpustakaan terbaik untuk mendeteksi dan mendekode berbagai jenis kode batang dan kode QR. OpenCV digunakan untuk mengambil bingkai baru dari aliran video, dan memprosesnya. Setelah OpenCV menangkap bingkai, maka kita dapat meneruskannya ke pustaka decoding kode batang Python khusus seperti ZBar yang menerjemahkan kode batang dan mengubahnya menjadi informasi masing-masing.
Persyaratan
- Raspberry Pi 3 (versi apa saja)
- Modul Kamera Pi
Sebelum melanjutkan dengan pemindai kode QR Raspberry Pi 3 ini, pertama-tama kita perlu menginstal OpenCV, library decoding Barcode ZBar, imutils, dan beberapa dependensi lain dalam project ini. OpenCV digunakan di sini untuk pemrosesan gambar digital. Aplikasi Pemrosesan Gambar Digital yang paling umum adalah deteksi objek, Pengenalan Wajah, dan penghitung orang.
Menginstal OpenCV di Raspberry Pi
Di sini pustaka OpenCV akan digunakan untuk pemindai QR Raspberry Pi. Untuk menginstal OpenCV, pertama, perbarui Raspberry Pi.
sudo apt-get update
Kemudian instal dependensi yang diperlukan untuk menginstal OpenCV di 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
Setelah itu, instal OpenCV di Raspberry Pi menggunakan perintah di bawah ini.
pip3 instal opencv-contrib-python == 4.1.0.25
Kami sebelumnya menggunakan OpenCV dengan Raspberry pi dan membuat banyak tutorial tentangnya.
- Menginstal OpenCV di Raspberry Pi menggunakan CMake
- Pengenalan Wajah Real-Time dengan Raspberry Pi dan OpenCV
- Pengakuan Plat Lisensi menggunakan Raspberry Pi dan OpenCV
- Estimasi Crowd Size Menggunakan OpenCV dan Raspberry Pi
Kami juga telah membuat serangkaian tutorial OpenCV mulai dari tingkat pemula.
Menginstal Paket Wajib lainnya
Menginstal ZBar
Zbar adalah perpustakaan terbaik untuk mendeteksi dan mendekode berbagai jenis kode batang dan kode QR. Gunakan perintah di bawah ini untuk menginstal perpustakaan:
pip3 instal pyzbar
Memasang imutils
Imutils digunakan untuk membuat fungsi pemrosesan gambar penting seperti terjemahan, rotasi, pengubahan ukuran, skeletonization, dan menampilkan gambar Matplotlib lebih mudah dengan OpenCV. Gunakan perintah di bawah ini untuk menginstal imutils:
pip3 instal imutils
Menginstal argparse
Gunakan perintah di bawah ini untuk menginstal perpustakaan argparse. argparse bertanggung jawab untuk mengurai argumen baris perintah.
pip3 menginstal argparse
Pengaturan Perangkat Keras Pembaca Kode QR Raspberry pi
Disini kita hanya membutuhkan kamera Raspberry Pi dan Pi untuk pemindai kode QR ini menggunakan Kamera Raspberry Pi dan Anda hanya perlu memasang konektor pita kamera pada slot kamera yang diberikan pada Raspberry pi.
Kamera Pi dapat digunakan untuk membangun berbagai proyek menarik seperti Kamera Pengawas Raspberry Pi, Sistem Pemantauan Pengunjung, Sistem Keamanan Rumah, dll.
Kode Python untuk Raspberry Pi QR Code Reader
Kode lengkap untuk Raspberry Pi QR reader diberikan di akhir halaman. Sebelum kita memprogram Raspberry Pi, mari kita pahami kodenya.
Jadi, seperti biasa, mulai kode dengan mengimpor semua paket yang diperlukan.
dari imutils.video impor VideoStream dari pyzbar impor pyzbar impor argparse impor datetime impor imutils impor waktu impor cv2
Kemudian buat parser argumen dan parsing argumen. Argumen baris perintah berisi informasi tentang jalur file CSV. File CSV (Comma Separated Values) berisi stempel waktu dan muatan setiap kode batang dari aliran video kami.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "jalur ke keluaran file CSV yang berisi kode batang") args = vars (ap.parse_args ())
Setelah itu, inisialisasi streaming video dan hapus komentar di baris komentar jika Anda menggunakan webcam USB.
#vs = VideoStream (src = 0).start () vs = VideoStream (usePiCamera = True).start () time.sleep (2.0)
Sekarang di dalam loop, ambil bingkai dari aliran video dan ubah ukurannya menjadi 400 piksel. Setelah mengambil bingkai, panggil fungsi pyzbar.decode untuk mendeteksi dan mendekode kode QR.
frame = vs. read () frame = imutils.resize (frame, width = 400) barcode = pyzbar.decode (frame)
Sekarang, putar ulang kode batang yang terdeteksi untuk mengekstrak lokasi kode batang dan gambar kotak pembatas di sekitar kode batang pada gambar.
untuk barcode di barcode: (x, y, w, h) = barcode.rect cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
Kemudian decode barcode yang terdeteksi menjadi string "utf-8" menggunakan fungsi decode ("utf-8") dan kemudian ekstrak jenis barcode tersebut menggunakan fungsi barcode.type.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
Setelah itu, simpan data barcode yang diekstraksi dan jenis barcode di dalam variabel bernama teks, dan gambar data barcode dan ketik pada gambar.
text = "{} ({})". format (barcodeData, barcodeType) cv2.putText (bingkai, teks, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0,5, (0, 0, 255), 2)
Sekarang tampilkan output dengan data barcode dan tipe barcode.
cv2.imshow ("Pembaca Kode Batang", bingkai)
Sekarang di langkah terakhir, periksa apakah tombol 's' telah ditekan, kemudian keluar dari loop utama dan mulai proses pembersihan.
key = cv2.waitKey (1) & 0xFF # jika tombol `s` ditekan, keluar dari loop jika key == ord (" s "): break print (" cleaning up… ") csv.close () cv2.destroyAllWindows () vs. stop ()
Menguji Pemindai Kode QR Raspberry Pi
Setelah penyiapan Anda siap, luncurkan program pembaca kode QR. Anda akan melihat jendela yang menunjukkan tampilan langsung dari kamera Anda, sekarang Anda dapat menampilkan kode batang di depan kamera PI. Ketika pi menerjemahkan kode batang, itu akan menggambar kotak merah di sekitarnya dengan data kode batang dan jenis kode batang seperti yang ditunjukkan pada gambar di bawah ini:
Ini adalah bagaimana Anda dapat dengan mudah membangun Pembaca Kode QR Kamera Raspberry Pi hanya dengan menggunakan papan Raspberry Pi dan kamera Pi atau kamera USB.
Video yang berfungsi dan kode lengkap untuk proyek ini diberikan di bawah ini.